Objective-C Try/Catch не ловит
Есть ли причина, по которой следующее не будет работать?
@try {
CFGetTypeID( NULL );
}
@catch (NSException * e) {
NSLog(@"Exception: %@", e);
}
@finally {
NSLog(@"finally");
}
Похоже на вопрос " попробуй / поймай", только кажется, что вышеприведенный блок вылетает каждый раз. Я знаю, что мой отладчик настроен правильно, так как я настроил попытку / уловку выше из другого вопроса:
// Test working try catch
NSString* test = [NSString stringWithString:@"ss"];
@try {
[test characterAtIndex:6];
}
@catch (NSException * e) {
NSLog(@"Exception: %@", e);
}
@finally {
NSLog(@"finally");
}
// Now test NULL entry
@try {
CFGetTypeID( NULL );
}
@catch (NSException * e) {
NSLog(@"Exception: %@", e);
}
@finally {
NSLog(@"finally");
}
1 ответ
Решение
Да, есть очень простая причина. А именно, CFGetTypeID(NULL)
не выбрасывает исключение Это сбой. Вы не можете поймать сбои, как это.