Java程序设计教程 张克军 陆迟 孙海伦 庞丽娜 第11章 异常处理新.pptVIP

Java程序设计教程 张克军 陆迟 孙海伦 庞丽娜 第11章 异常处理新.ppt

  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文档。上传文档
查看更多
第11章 异常处理 在开发项目的过程中,核心业务代码只占了20%~30%左右的时间,而用于开发容错代码的时间却高达70%~80%,这大大降低了开发效率。Java中提供的异常处理机制,可以很好地在一定程度上解决这个问题。 通过使用异常处理机制,可以使容错代码的开发变得轻松愉快。本章将对Java中的异常处理机制进行详细的介绍,主要包括异常处理的基本知识、异常的层次结构、异常的匹配、定义自己的异常、再次抛出异常、断言等内容。 11.1 异常处理的基本知识 本节主要介绍捕获与处理异常的基本语法,主要包括try/catch/finally语句的基本使用、异常的传播过程及实际开发中需要注意的问题等内容。 11.1.1 try和catch捕获异常 本小节将介绍如捕获异常以及如何对异常进行处理,主要包括如下两个方面的内容。 捕获并处理异常的语法 try-catch语句的执行流程 1.捕获并处理异常的语法 2.try-catch语句的执行流程 11.1.2 异常的传播过程 上一小节介绍了有catch语句块捕获异常情况下异常处理的过程,如果没有catch语句块捕获异常,异常将沿着方法的调用栈一直向上传播。如果传播的过程中一直没有catch语句块捕获,则最终传播到main方法,最后从main方法抛出,由Java运行时环境(JRE)来处理。 11.1.3 finally语句块的使用 某些特殊情况下,经常需要用到finally语句块,本小节将详细介绍finally语句块的使用,主要包括如下两点内容。 finally语句块的基本使用规则 finally语句块的作用 1.finally语句块的基本使用规则 2.finally语句块的作用 11.2 异常的层次结构 当异常发生时,Java会将该异常包装成一个异常类的对象,并将其引用作为参数传递给相应的catch语句,这样在catch语句中就可以对这个异常对象进行操作。本节将系统的介绍异常类的层次结构,主要内容包括捕获异常与未捕获异常两个方面。 11.2.1 捕获异常 Java类库中有一个java.lang.Throwable类,其继承自java.lang.Object类,是所有异常类的超类。 11.2.2 未捕获异常 在图11.12显示的继承树上,除了捕获异常以外的部分都是未捕获异常,即Error类及其子类以及RuntimeExcepiton类及其子类。 继承自Error的类一般代表由硬件运行失败导致的严重错误,而其从严格意义上将,不属于异常,因为其不属于Exception类的子类。一般来说,程序不能从Error中恢复,例如内存耗尽就是一个属于Error的情况,这种情况是无法恢复的。 而RuntimeException类的子类通常是指一些程序运行时错误引起的异常,所以也可以不对其进行处理。 11.3 再次抛出异常 实际开发中,不可能所有的异常在其产生的位置都能立即进行处理,有时需要上报,由上一级程序进行处理。这里所谓的上报就是异常的再次抛出,本节主要对这方面的内容进行介绍,主要包括异常的再抛出的含义、显性再抛出、隐性再抛出等内容。 11.3.1 什么是异常的再抛出 异常的再抛出与人类社会解决问题的模型是很相似的。打个比方,在某厂的某部门某车间内发生了一些状况,车间内部就去解决,但是如果状况很大,车间内部解决不了,车间就会将此事上报,推给部门进行处理,若部门解决不了继续向上推,直至某个地方能将此事解决。 11.3.2 显性再抛出 一旦方法有可能抛出捕获异常,则在方法声明时需要特别指出,否则编译报错。而通过编写代码将catch语句捕获的异常再次抛出,就称为显性再抛出。本小节将主要介绍以下两方面的内容。 显性再抛出的语法规则 声明异常抛出需要注意的问题 1.显性再抛出的语法规则 2.声明异常抛出需要注意的问题 11.3.3 隐性再抛出 通过前面介绍的显性再抛出。如果只是想把收到的异常再抛出,不必使用显性再抛出,使用隐性再抛出即可。隐性再抛出语法比显性再抛出简单,效果是相同的,隐性与显性再抛出在语法上有如下几点异同。 若抛出的是捕获异常,隐性与显性再抛出都必须在方法声明中明确声明。 显性再抛出是在方法体中使用throw语句将产生的异常抛出,隐性再抛出是在方法体中没有任何抛出异常的语句,若产生异常将自动抛出。 11.4 定义自己的异常 从前面的例子中可以看出,用throw语句抛出的异常不一定是捕获的,也可以是自己创建的。Java中每个异常类都代表一种特定的情况,有时系统中已有的异常类型不能满足使用的需要。这时,就需要抛出自定义的异常对象,本节将介绍如何创建以及使用自己定义的异常类,以及显性再抛出在实际开发中的意义与作用。 11.4.1 创建自己的异常类 本小节主要介绍如何创建自己的异常类,

您可能关注的文档

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档