IOS开发之--异常处理--使用try 和 catch 来捕获错误。
2014-08-29 22:55
821 查看
一个搞java的老板问我会不会try catch 我说不会 学这么久也没听周围朋友用这个 因为苹果控制台本来就可以打印异常
特此研究一下。
1.try catch: 是捕获异常代码段 特点:对代码的实时监控 占用大量资源
2.ios中很少用到try 和catch
3.try,catch,finally执行流程 (http://blog.csdn.net/phoenix001/article/details/4293472)
4.举例使用
特此研究一下。
1.try catch: 是捕获异常代码段 特点:对代码的实时监控 占用大量资源
2.ios中很少用到try 和catch
简单的来说,Apple虽然同时提供了错误处理(NSError)和异常处理(exception)两种机制,但是Apple更加提倡开发者使用NSError来处理程序运行中可恢复的错误。而异常被推荐用来处理不可恢复的错误。 原因有几个,在非gc情况下,exception容易造成内存管理问题(文档有描述即使是arc下,也不是安全的);exception使用block造成额外的开销,效率较低等等,另外这也的确是Cocoa开发者的习惯。(http://blog.csdn.net/x32sky/article/details/23753597)//怪不得我没听周围IOS开发人员用这个
3.try,catch,finally执行流程 (http://blog.csdn.net/phoenix001/article/details/4293472)
try{ //1:抛出异常的代码 //2:代码 }catch(){ //3:代码 //4:抛出异常 }finally{ //5:代码 } //6:代码 首先要明确的一点是:不管try是否抛出异常,finally语句块都会执行。 小心注意6!! 整个try,catch,finally执行有以下几种情况: 1:try语句块没有抛出异常。如果是这种情况,程序会执行try,finally以及finally块之后的代码; 2:try语句块抛出了异常并且catch有匹配的异常。当遇到try里面抛出的异常后,try块里面剩下的代码就不执行了,跳转到catch块里面。 这里又可以分为2种情况。第一种,抛出的异常被后面的catch捕获,而catch又没有抛出新的异常,那么执行顺序是1356 ;第二种,如果catch里面又抛出新的异常,顺序是1345,然后将新的异常返回给方法调用者,6就不执行了 ; 3:try语句块抛出了异常,但是后面的catch没有能匹配的异常。那么会执行try和finally里面的语句也就是15,然后将该异常返回给方法调用者,不执行6 。 总结: 如果异常不能被捕捉的话,finally{}后面的语句就不会执行了,而finally{}一定被执行
4.举例使用
@try{ } @catch(NSException *exception) { NSLog(@"exception:%@", exception); } @finally { }
相关文章推荐
- 在ios开发中使用 try 和 catch 来捕获错误。
- 在ios开发中使用 try 和 catch 来捕获错误。
- 在ios开发中使用 try 和 catch 来捕获错误。
- 在ios开发中使用 try 和 catch 来捕获错误。
- 在ios开发中使用 try 和 catch 来捕获错误。
- iOS中@try@catch@finally捕获异常使用
- iOS捕获异常,常用的异常处理方法 try-catch-finally
- sql server try...catch使用 异常处理 不错的SQL错误处理
- C++中的异常捕获与处理:Try、Throw、Catch关键字的理解和使用
- iOS中try-catch-finally捕获异常使用
- iOS中@try@catch@finally捕获异常使用
- APP开发实战151-Android使用try…catch…处理异常
- C#学习使用try-catch-finally错误处理表达式(续)--定义自己的异常消息类
- WCF基础教程之异常处理:你的Try..Catch语句真的能捕获到异常吗?
- js中的异常处理try...catch使用介绍
- 二十一天学通C++之使用try/catch捕获异常
- 异常处理try...catch(sql 2005版本以上可以使用)
- 使用try/catch捕获异常
- WCF基础教程之异常处理:你的Try..Catch语句真的能捕获到异常吗?
- js错误处理try..catch使用