我一直在阅读 Apple developer docs 上的异常处理, 但我想知道为什么标准 C 操作的异常没有被捕获?
例如下面的代码仍然使应用程序崩溃,但没有将 div 清零。 @try/@catch block 只会捕获 Obj-C 代码吗?
@try {
int i = 10 / 0;
}
@catch (NSException * e) {
NSLog(@"Div by zero!");
}
@finally {
// Nothing...
}
最佳答案
被零除不是 NSException
类型的异常。事实上,就编程语言而言,它也不是真正的“异常(exception)”。 C 本身没有像 C++、Java 等一样的任何异常。当在 C 中除以 0 时,处理器会“抛出”一个“异常”,并在更低的级别处理该错误。
关于c - Obj-C 中的异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2700998/