网站大量收购独家精品文档,联系QQ:2885784924

第9章-异常处理.pptVIP

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

Java面向对象程序设计(第二版) 第9章 异常处理 本章内容 异常及异常处理概念 异常处理机制原理 捕获与处理异常方法 自定义异常 教学目标 理解出现异常的原因 理解异常处理的方法 掌握try-catch的异常处理机制的应用 掌握throw及throws子句的应用 能够自定义异常 9.1引例 异常是用来处理程序错误的有效机制。通过系统抛出的异常,程序可以很容易地捕获并处理发生的异常情况。对于一个应用软件,异常处理是不可缺少的。为了说明什么是异常,我们先来看下面的例子。 例9.1 异常处理引例 分析:在进行除法运算的时候,有时会出现除数为0的错误。以下实例就是演示这种错误。 例9.1异常处理引例(续) 运行结果: 这是一个异常处理的引例! Exception in thread main java.lang.ArithmeticException: / by zero at Jpro9_1.main(Jpro9_1.java:5) 程序分析: 在程序正常情况下,输出结果应该是“这是一个异常处理的引例!”“i= ”但在执行除法运算时发现除数为0,抛出了java.lang.ArithmeticException异常,程序终止,并显示错误信息。错误的原因在于除数为0。Java发现这个错误后,便由系统抛出ArithmeticException类的异常,用来表明错误的原因,并停止运行程序。 异常 从上述例题可以分析出,在Java语言中,并不是所有程序都是完美的,会发生运行时错误,我们将程序运行时发生的错误叫做异常。下面任何一种情况都会出现异常: 想打开的文件不存在; 在访问数组时,数组的下标值超过了数组允许的范围; 整除时除数为0; 正在装载的类文件丢失。 上述情况在编译时都是正确的,但程序运行时会提示抛出异常的信息。这时需要手工检查错误情况,这种方法既繁琐又易出错。实际上,只要编写一些额外的程序代码绕过这些情况,让程序继续执行即可。 异常处理机制 在Java中,所有的异常都是以类的形式存在,除了内置的异常类之外,Java允许自定义异常类。Java中的每个异常类都代表了一种运行错误,每当Java程序运行过程中发生一个可识别的运行错误时,系统都会产生一个相应的该异常类的对象,即产生一个异常。一旦一个异常对象产生了,系统中就一定要有相应的机制来处理它,确保不会产生死机、死循环或其他对操作系统的损害,从而保证整个程序运行的安全性,这就是Java的异常处理机制。 在没有异常处理机制的语言中,必须使用if-else或switch等语句,捕获程序中所有可能发生的错误情况。Java的异常处理机制恰好弥补这个不足,它具有易于使用、可自定义异常类、允许抛出异常且不会降低运行速度等优点。因而在设计Java程序时,充分利用Java异常处理机制,可大大提高程序的稳定性、安全性及效率。 9.2异常和异常类 异常与其他语言要素一样,是面向对象范围的一部分,是异常类的对象。Java所有的异常对象都是继承Throwable的类的实例,Throwable类是类库java.lang包中的一个类,它派生出两个子类:Error类和Exception类,如图9-1所示。图9-1只列出了部分异常类,关于其他的异常类在教材相应的部分中将会介绍。 9.2异常和异常类(续) 9.2异常和异常类(续) Error类的错误被认为是不能恢复的严重错误,如系统内部错误、资源耗尽错误等。在此情况下,除了通知用户并试图终止程序外几乎是不能做其他任何处理的,因此,不应该抛出这种类型的错误,而是直接让程序中断。这种情况一般很少出现。 Exception类定义可能遇到的轻微错误,分为:RuntimeException类的异常和IOException类的异常。由程序错误导致的异常属于RuntimeException,而程序本身没有问题;但由于像I/O错误这类问题导致的异常属于其他异常。Exception类异常可以写代码来处理并继续程序执行,而不是让程序中断。 9.2异常和异常类(续) RuntimeException应该由编程人员来负责,例如检查除数是否为零,访问数组元素时判断数组下标是否越界等。而非RuntimeException的异常则不完全取决于代码,有时候与环境密切相关,如不同的浏览器能够处理不同的URL,IE能够处理mailto:URL,而applet查看器(appletviewer)将会出现I/O的异常等。 9.3异常处理 当一个异常被抛出(即产生了异常)时,该如何处理呢?本节将详细介绍Java捕获和处理异常的语句。 在Java语言中使用语句try-catch-finally进行异常处理,程序流程从引入异常的代码转移到最近的try语句的catch子句,如例9.2所示。 9.3

文档评论(0)

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

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

1亿VIP精品文档

相关文档