2011-05-24 36 views
0

我想知道异常处理的全局机制。编码良好的异常处理 - @try @catch或没有它

就像我有20个不同的类,我想把尝试抓住所有,然后它可能是一些耗时以及可能会造成问题。

我发现了一些这样的代码

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

但我不能调用此方法,使用

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

我才知道这种方法,但不能调用任何异常。

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

任何一个可以建议我或者给我提供的示例代码为全球处理异常..提前

感谢

+1

使用上面的确切代码。 在此。 NSSetUncaughtExceptionHandler(&的UncaughtExceptionHandler); 我得到uncaughtExceptionHandler未声明的错误。任何人都可以告诉我我错过了什么? – 2011-10-21 12:41:06

回答

0

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

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

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