NSSetUncaughtExceptionHandler 在 Lion 10.7.3 上不起作用



以下简单代码,用于新可可测试项目的应用程序委托。

void onUncaughtException(NSException *exception){
    NSLog(@"Caught!!! %@", exception);
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    NSSetUncaughtExceptionHandler(&onUncaughtException);
    NSException *exception = [[NSException alloc]initWithName:@"exception" reason:@"exception reason here" userInfo:nil];
    @throw exception;
}

我只得到带有异常名称和原因的单个控制台日志行,但未调用未捕获异常。该应用程序继续运行,没有问题。

我在这里错过了什么? 我在调试和发布版本上尝试了这个,结果相同。

我不知道它的所有来龙去脉,但我怀疑 NSApplication 在它失败到您的处理程序之前正在拦截它。

最新更新