try、catch和finally.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
try、catch和finally

1、将预见可能引发异常的代码包含在try语句块中。 2、如果发生了异常,则转入catch的执行。catch有几种写法: catch 这将捕获任何发生的异常。 catch(Exception e) 这将捕获任何发生的异常。另外,还提供e参数,你可以在处理异常时使用e参数来获得有关异常的信息。 catch(Exception的派生类 e) 这将捕获派生类定义的异常,例如,我想捕获一个无效操作的异常,可以如下写: catch(InvalidOperationException e) { .... } 这样,如果try语句块中抛出的异常是InvalidOperationException,将转入该处执行,其他异常不处理。 catch可以有多个,也可以没有,每个catch可以处理一个特定的异常。.net按照你catch的顺序查找异常处理块,如果找到,则进行处理,如果找不到,则向上一层次抛出。如果没有上一层次,则向用户抛出,此时,如果你在调试,程序将中断运行,如果是部署的程序,将会中止。 如果没有catch块,异常总是向上层(如果有)抛出,或者中断程序运行。 3、finally finally可以没有,也可以只有一个。无论有没有发生异常,它总会在这个异常处理结构的最后运行。即使你在try块内用return返回了,在返回前,finally总是要执行,这以便让你有机会能够在异常处理最后做一些清理工作。如关闭数据库连接等等。 注意:如果没有catch语句块,那么finally块就是必须的。 如果你不希望在这里处理异常,而当异常发生时提交到上层处理,但在这个地方无论发生异常,都要必须要执行一些操作,就可以使用try finally. 1. 抛出 E1. 抛出 Exception,没有 finally,当 catch 遇上 return ?1 ?2public?static?boolean?catchTest()?{ ?3????????try?{ ?4????????????int?i?=?10?/?0;???//?抛出?Exception,后续处理被拒绝 ?5????????????System.out.println(i?vaule?is?:??+?i); ?6????????????return?true;????//?Exception?已经抛出,没有获得被执行的机会 ?7????????}?catch?(Exception?e)?{ ?8????????????System.out.println(?--?Exception?--); ?9????????????return?catchMethod();????//?Exception?抛出,获得了调用方法并返回方法值的机会 10????????} 11????} 12 后台输出结果: 1 2?--?Exception?-- 3call?catchMethod?and?return??---??false 4 2. 抛出 Exception,当 catch 体里有 return,finally 体的代码块将在 catch 执行 return 之前被执行 ?1 ?2public?static?boolean?catchFinallyTest1()?{ ?3????????try?{ ?4????????????int?i?=?10?/?0;?//?抛出?Exception,后续处理被拒绝 ?5????????????System.out.println(i?vaule?is?:??+?i); ?6????????????return?true;???//?Exception?已经抛出,没有获得被执行的机会 ?7????????}?catch?(Exception?e)?{ ?8????????????System.out.println(?--?Exception?--); ?9????????????return?catchMethod();??//?Exception?抛出,获得了调用方法的机会,但方法值在?finally?执行完后才返回 10????????}finally{ 11????????????finallyMethod();??//?Exception?抛出,finally 代码块将在?catch?执行?return?之前被执行 12????????} 13????} 14 后台输出结果: 1 2?--?Exception?-- 3call?catchMethod?and?return??---?? 4call?finallyMethod?and?do?something??---??false 5 3. 不抛 Exception,当 finally 代码块里面遇上 r

您可能关注的文档

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档