编码良好的异常处理-@try @catch或不使用

问题描述

|| 我想知道异常处理的全局机制。 就像我确实有20个不同的类,我想全部尝试使用catch一样,那么这可能既耗时又会造成问题。 我发现了一些类似的代码
-(void)ExceptionOccure:(NSException *)exception
{
    NSArray *stack = [exception callStackReturnAddresses];
    NSLog(@\"%@\",stack);
}
但是我无法使用
-(void) applicationDidFinishLaunching: (UIApplication *) application
{
     NSSetUncaughtExceptionHandler (&ExceptionOccure);
}
我开始知道这种方式,但无法调用任何异常。 我想为此异常处理创建全局机制。因此,在任何类中,如果发生任何异常,它将调用上面编写的函数并处理该异常,并可以根据需要将堆栈存储在数据库中。 谁能向我建议或提供示例代码来全局处理异常。 提前致谢     

解决方法

您的处理函数是C函数,因此您必须像这样实现它:
static void uncaughtExceptionHandler(NSException *exception) 
{
   NSArray *stack = [exception callStackReturnAddresses];
   NSLog(@\"%@\",stack);
}

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