1
以下關於應用程序委託在新可可測試項目上的簡單代碼。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;
}
我只得到一個控制檯日誌行與異常的名稱和原因,但onUncaughtException不會被調用。該應用程序繼續運行沒有問題。
我在這裏錯過了什麼?我在調試和發佈版本上嘗試過,結果相同。
是的,應用程序主線程中的異常未被捕獲。 @theReverend,參見[Exception Programming Topics:Controlling a Program's Response to Exceptions](https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Exceptions/Tasks/ControllingAppResponse.html)。 –