iOS 异常处理@try,catch

Object-C语言的异常处理符号和C++、JAVA相似。再加上使用NSException,NSError或者自定义的类,你可以在你的应用程序里添加强大的错误处理机制。

异常处理机制是由这个四个关键字支持的:@try,@catch,@thorw,@finally。当代码有可能出现异常时,我们把他放到@try语句块中。@catch()块包含了处理@try块里的抛出的异常的逻辑。无论异常是否发生,@finally块里面的语句都会执行。如果直接使用@throw块来抛出异常,这个异常本质上是一个OC的对象。咱们可以使用NSException对象,但是不局限于他们。

@try {
//Code… 存在问题的代码
}
@catch (NSException *exception) {
//<1>断点 可以更清晰的看到一些调用信息 从而发现错误源
//<2.1>日志(打印一些相关的信息 分析错误源)或者其他方式保存记录信息
NSLog(@”%@”,exception);
//<2.2>也可以调用Exception处理方法
[self UncaughtExceptionHandler:exception];
}
@finally {

}
    简单的来说,Apple虽然同时提供了错误处理(NSError)和异常处理(exception)两种机制,但是Apple更加提倡开发者使用NSError来处理程序运行中可恢复的错误。而异常被推荐用来处理不可恢复的错误。
    原因有几个,在非gc情况下,exception容易造成内存管理问题(文档有描述即使是arc下,也不是安全的);exception使用block造成额外的开销,效率较低等等,另外这也的确是Cocoa开发者的习惯。

你可能感兴趣的:(iOS 异常处理@try,catch)