编码良好的异常处理 - @try @catch或没有它

时间:2011-05-24 11:25:10

标签: iphone exception ios4 iphone-sdk-3.0 exception-handling

我想知道异常处理的全局机制。

就像我确实有20个不同的类,我想把try catch放在一起,然后它可能会耗费一些时间,也可能会产生问题。

我找到了一些像

这样的代码
-(void)ExceptionOccure:(NSException *)exception
{
    NSArray *stack = [exception callStackReturnAddresses];
    NSLog(@"%@", stack);
}

但我无法使用

调用此方法
-(void) applicationDidFinishLaunching: (UIApplication *) application
{
     NSSetUncaughtExceptionHandler (&ExceptionOccure);
}

我开始知道这种方式,但无法调用任何异常。

我想为此异常处理创建全局机制。所以在任何类中如果发生任何异常,它将调用上面编写的函数并处理异常,并且可以根据需要将堆栈存储在数据库中。

任何人都可以建议我或者提供示例代码来全局处理异常..

提前致谢

1 个答案:

答案 0 :(得分:0)

你的处理函数是一个C函数,所以你必须像这样实现它:

static void uncaughtExceptionHandler(NSException *exception) 
{
   NSArray *stack = [exception callStackReturnAddresses];
   NSLog(@"%@", stack);
}

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);
}