NSSetUncaughtExceptionHandler 在 Lion 10.7.3 上不起作用
Posted
技术标签:
【中文标题】NSSetUncaughtExceptionHandler 在 Lion 10.7.3 上不起作用【英文标题】:NSSetUncaughtExceptionHandler not working on Lion 10.7.3 【发布时间】:2012-05-12 23:02:02 【问题描述】:以下简单代码用于新可可测试项目的应用委托。
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;
我只得到带有异常名称和原因的单个控制台日志行,但不会调用 onUncaughtException。该应用程序继续运行,没有问题。
我在这里缺少什么?我在调试和发布版本中尝试了这个,结果相同。
【问题讨论】:
【参考方案1】:我不知道它的所有来龙去脉,但我怀疑 NSApplication 在它无法通过您的处理程序之前拦截它。
【讨论】:
是的,应用程序主线程上的异常并非未被捕获。 @theReverend,见Exception Programming Topics: Controlling a Program’s Response to Exceptions。以上是关于NSSetUncaughtExceptionHandler 在 Lion 10.7.3 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章