2010-04-23 107 views
6

我一直在阅读有关的Apple developer docs异常处理,但我不知道为什么用标准C这样的操作异常不抓?例外处理

E.g.下面的代码仍然会使应用程序崩溃,而不会将div捕获到零。 @ try/@ catch块只会捕获Obj-C代码吗?

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

回答

3

除零不是类型NSException的例外。事实上,就编程语言而言,它也不是一个“例外”。 C本身没有任何例外,就像C++,Java等一样。当C发生0除法时,处理器“抛出”“异常”,并且处理该错误发生在低得多的水平。