如何捕获BlockCode中的异常(目标C)

时间:2012-06-04 07:36:47

标签: objective-c objective-c-blocks

是否有正确的方法来捕获块代码中的异常?

我收到了以下代码:

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

从另一个线程调用回调方法。如果响应等于400,DoSomethingWithRespond方法将抛出异常。

1 个答案:

答案 0 :(得分:4)

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