这是我的方法:
- (IBAction)calculateButton:(id)sender {
NSInteger dividend = 0;
NSInteger divisor = 0;
@try {
dividend = [dividendField integerValue];
divisor = [divisorField integerValue];
[quotientField setIntegerValue: dividend / divisor]; //program crashes here
[remainderField setIntegerValue: dividend % divisor];
}
@catch (NSException *exception) {
NSAlert* alert = [[NSAlert alloc] init];
[alert setMessageText: @"Error"];
[alert setInformativeText: @"Invalid input!"];
[alert runModal];
}
}
我理解它的方式NSException
是所有其他异常都继承自的通用异常处理程序;所以问题是,为什么程序崩溃而不是进入@catch
块?我得到了一个EXC_ARITHMETIC
which 根据我的理解仍然是一个例外......那么为什么不@catch
抓住它呢?