新しいココアテストプロジェクトのアプリのデリゲートに関する次の簡単なコード。
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;
}
例外の名前と理由が記載されたコンソールログ行が1つしか表示されませんが、onUncaughtExceptionが呼び出されません。アプリは問題なく実行され続けます。
ここで何が欠けていますか?デバッグビルドとリリースビルドでこれを試しましたが、同じ結果になりました。