- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
- 第6章-SPSS方差分析.ppt
- 第6章-电子商务系统分析.ppt
- 第6章-网站管理.ppt
- 第6章-职业规划服务.ppt
- 第6章-软件过程的项目管理.ppt
- 第6章-电子商务服务管理和运营.ppt
- 第6章-项目成本决算与项目审计.ppt
- 第6章-矿井地质制图.ppt
- 第6节-光合作用.ppt
- 第7章--企业资源管理.ppt
- 难点详解鲁教版(五四制)6年级数学下册期末测试卷带答案详解(考试直接用).docx
- 难点详解鲁教版(五四制)6年级数学下册期末试题【培优】附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题及完整答案详解(全国通用).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(名师系列).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解【全国通用】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(突破训练)附答案详解.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷(能力提升)附答案详解.docx
- 难点详解京改版数学9年级上册期中试卷附参考答案详解【突破训练】.docx
- 难点解析鲁教版(五四制)7年级数学下册期末试题含完整答案详解(有一套).docx
- 难点解析鲁教版(五四制)7年级数学下册期末试卷带答案详解(夺分金卷).docx
最近下载
- 实习安全教育主题班会.pptx VIP
- 热点03 粮食安全,乡村振兴(课件)-2024年高考历史热点追踪命题预测.pptx VIP
- 2025年-二级建造师-机电工程实务与管理.docx VIP
- 人工智能在能源行业中的应用.pptx VIP
- PICC专科护士进修学习汇报.pptx VIP
- 绵阳燃气招聘面试题型及答案.pdf
- 体例格式12:工学一体化课程《小型网络安装与调试》任务2教学单元2教学单元活动方案.docx VIP
- GB 50149-2010 电气装置安装工程母线装置施工及验收规范.docx
- 中国人身保险业重大疾病经验发生率表(2020).docx VIP
- 体例格式12:工学一体化课程《小型网络安装与调试》任务2教学单元4教学单元活动方案.docx VIP
文档评论(0)