2012-05-12 1 views
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 не дозвонилась. Приложение продолжает работать без проблем.

Что мне здесь не хватает? Я пробовал это при отладке и выпуске сборок с одинаковыми результатами.

ответ

0

Я не знаю, все это, но я подозреваю, что NSApplication перехватывает его, прежде чем он провалится к вашему обработчику.

+0

Да, исключения из основного потока приложения не являются неотображаемыми. @ theReverend см. в разделе [Исключительные темы программирования: контроль ответа программы на исключения] (https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Exceptions/Tasks/ControllingAppResponse.html). –

 Смежные вопросы

  • Нет связанных вопросов^_^