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



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

就像我有20个不同的类,我想把try-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);
}

最新更新