1

新しいココアテストプロジェクトのアプリのデリゲートに関する次の簡単なコード。

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が呼び出されません。アプリは問題なく実行され続けます。

ここで何が欠けていますか?デバッグビルドとリリースビルドでこれを試しましたが、同じ結果になりました。

4

1 に答える 1

0

私はそれのすべての詳細を知りませんが、NSApplicationがハンドラーに失敗する前にそれを傍受しているのではないかと思います。

于 2012-05-13T01:41:05.583 に答える