これが私の方法です:
- (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
の理解では、これはまだ例外です...では、なぜそれを@catch
キャッチしないのですか?