/ / Jak wychwytywać wyjątki w BlockCode (Cel C) - C-C, C-C-Block

Jak wychwytywać wyjątki w ramach BlockCode (Objective C) - target-c, target-c-blocks

Czy istnieje właściwy sposób wychwytywania wyjątków w kodzie blokowym?

Mam następujący kod:

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
}
}

Metody wywołania zwrotnego są wywoływane z innego wątku. Jeśli odpowiedź jest równa 400 DoSomethingWithRespond metoda zgłosi wyjątek.

Odpowiedzi:

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