Obj-C中的异常处理

Jam*_*man 6 c exception-handling exception objective-c

我一直在阅读关于Apple开发人员文档的异常处理,但我想知道为什么标准C操作的异常没有被捕获?

例如,下面的代码仍然会崩溃应用程序,而不会将div捕获为零.请问@ try/@ catch块只捕获Obj-C代码吗?

@try {
    int i = 10 / 0;
}
@catch (NSException * e) {
    NSLog(@"Div by zero!");
}
@finally {
    // Nothing...
}
Run Code Online (Sandbox Code Playgroud)

mip*_*adi 3

除以零并不是 type 的例外NSException。事实上,就编程语言而言,它也并不是真正的“例外”。C 本身没有任何异常,就像 C++、Java 等一样。当 C 中发生除数 0 时,处理器会“抛出”“异常”,并且对该错误的处理发生在更低的级别。