iOS 异常处理@try,catch
2016-01-16 17:30
309 查看
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 {
异常处理机制是由这个四个关键字支持的:@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级联(省份和城市)
- iOS Xcode编译报错问题解决办法汇总
- ios下,对于position:fixed支持不完美的额解决方案
- iOS开发~CocoaPods使用详细说明
- IOS中程序如何进行推送消息(本地推送,远程推送)
- 转: ios的关于autolayout的设计与实现
- iOS后台定位,实时向服务器发送最新位置
- 那些 iOS 7 中容易被忽视的新特性总结
- iOS触摸事件深入
- 【转】iOS 文件下载及断点续传
- iOS 视图上移20个像素 问题
- iOS远程推送的原理
- iOS开发技巧--去除项目中单个类型的警告
- iOS的socket开发基础
- iOS关于核心动画CoreAnimation
- iOS开发--异步在主线程中执行block的几种方法总结
- iOS KVO 学习笔记
- iOS开发-状态模式
- iOS-项目中的文件
- iOS 截屏并保存到相册