Objective-C 编程语言(11)异常处理----捕获多种类型的异常、抛出异常

Objective-C 编程语言(11)异常处理----捕获多种类型的异常、抛出异常,第1张

概述转载请标明出处: http://blog.csdn.net/zhangxingping 捕获多种类型的异常 在@try()代码块后面紧跟一个或者是多个@catch即可捕获@try()代码块中抛出的异常。其中在有多个@catch()代码块的时候,应该按照异常的明确程度从高到底的顺序进行排列。因此我们可以对异常进行分组处理,如列表11-1所示: @try{ ….}@catch(Custo 转载请标明出处: http://blog.csdn.net/zhangxingping 捕获多种类型的异常

在@try()代码块后面紧跟一个或者是多个@catch即可捕获@try()代码块中抛出的异常。其中在有多个@catch()代码块的时候,应该按照异常的明确程度从高到底的顺序进行排列。因此我们可以对异常进行分组处理,如列表11-1所示:

@try{    ….}@catch(CustomException  * ce) // 1{    ….}@catch(NSException * ne)  // 2{    ….}@catch (ID ue){    ….}@finally // 3{   //无论是否有异常,都需要在此进行那些必要的处理}

下面的列表描述了上面代码中标号的3行代码:

1.      捕获类型明确的异常。

2.      捕获那些类型相对不够明确,也就是比较通用类型的异常。

3.      进行必要的清扫工作,不管是否捕获到了异常。

 

抛出异常

抛出异常的时候,首先使用适当的信息初始化一个实例,比如使用名称和产生的原因来初始化异常实例。

NSException *exception = [ NSExceptionexceptionWithname”@HotteaException” reason:@”The tea is too hot” userInfo:nil];

 

重要:在很多情况下,使用异常是很常见的。例如,可以使用异常来同志某段程序不能正常执行——比如需要的文件缺失或是数据不能正确解析等。Objective-C中的异常处理是很耗资源的。因此不能使用异常处理来进行流程控制,或者用异常来代表有错误产生。相反,应该使用方法或者是函数的返回值来判断是否有错误发生,并在表示错误的对象中加入相关的信息。更多信息,请参阅《Cocoa中错误处理编程指南》。

 

在@catch()代码块中也是可以使用@throw命令字而不需要参数来再次把捕获到的异常进行抛出的。

 

Objective-C中没有限定必须抛出NSException类的对象,可以抛出任何Objective-C对象作为异常对象。NSException类提供了有助于进行异常处理的方法,但是如果我们很想使用自己定义的异常也是可以的。我们还可以通过继承NSException类来实现类型更加明确的异常,譬如文件系统异常或者是通信异常等。

总结

以上是内存溢出为你收集整理的Objective-C 编程语言(11)异常处理----捕获多种类型的异常、抛出异常全部内容,希望文章能够帮你解决Objective-C 编程语言(11)异常处理----捕获多种类型的异常、抛出异常所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1057175.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存