gpt4 book ai didi

Objective-C (Mac) try-catch 未捕获异常

转载 作者:行者123 更新时间:2023-12-03 17:30:17 29 4
gpt4 key购买 nike

这是我的方法:

- (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 block ?我得到一个 EXC_ARITHMETIC ,据我了解,它仍然是一个异常......那么为什么 @catch 没有捕获它?

最佳答案

这是因为“异常”不是 Objective-C 异常,而是来自内核的异常/陷阱。对象中不处理除以零,因此此处应用纯 C 规则。

关于Objective-C (Mac) try-catch 未捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18696113/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com