Я читал об обработке исключений на документах разработчика Apple, но я задавался вопросом, почему исключения по стандарту C операции не пойманы?
Например, код ниже все еще разрушает приложение, не ловя отделение нулем. Будет @try / блок выгоды только ловит код Obj-C?
@try {
int i = 10 / 0;
}
@catch (NSException * e) {
NSLog(@"Div by zero!");
}
@finally {
// Nothing...
}
Деление на ноль не является исключением для типа NSException
. Фактически, это тоже не исключение с точки зрения языка программирования. В самом C нет исключений, как в C ++, Java и т. Д. Когда в C происходит деление на 0, процессор «выбрасывает» «исключение», и обработка этой ошибки происходит на гораздо более низком уровне.