2012-06-04 6 views
6

¿Hay una forma adecuada de detectar excepciones dentro del código de bloque?Cómo detectar excepciones dentro de BlockCode (Objective C)

que tiene el siguiente código:

void(^callback(int) = ^(int respond){ 
    [self DoSomethingWithRespond:respond]; //this throws an exception 
}; 

-(void)DoSomethingWithRespond:(int)respond{ 
    if(respond == 400){ 
    NSException *exception = [NSException 
           exceptionWithName:@"Failed" 
           reason:logMessage 
           userInfo:nil]; 
    @throw exception 
    } 
} 

Los métodos de devolución de llamada es llamado desde otro hilo. Si la respuesta es igual a 400, el método DoSomethingWithRespond emitirá una excepción.

+1

En Excepciones de Objective-C se utilizan sólo para excepcional, es decir, caso fortuito, es decir, errores de programador – hooleyhoop

+0

pero quiero coger esa excepción, error del programador o no .. :-) – Zillan

+0

Claro, yo sé que no es una responder. Subí votando así que con suerte obtendrás uno. Siempre que sepa que lo que está haciendo se considera un código absolutamente horrible, le deseo suerte. – hooleyhoop

Respuesta

4
@try { 
     <#statements#> 
    } 
    @catch (NSException *exception) { 
     <#handler#> 
    } 
    @finally { 
     <#statements#> 
    } 
+1

Dios mío .. Parece que no se autocompleta dentro de un código de bloque. Pero el '@try - catch' parece funcionar ... ¡Gracias! – Zillan

Cuestiones relacionadas