- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 异常处理 7.1 异常的基本概念 异常也称为例外,是在程序运行过程中发生的、会打断程序正常执行的事件。下面是几种常见的异常: (1) 算术异常(Arithmetic Exception)。 (2) 没有给对象开辟内存空间时会出现空指针异常(Null Pointer Exception)。 (3) 找不到文件异常(File Not Found Exception)。 所以在程序设计时,必须考虑到可能发生的异常事件,并做出相应的处理,这样才能保证程序的正常运行。 7.1.1 异常处理的目的 在没有异常处理的语言中,必须使用if或switch等语句,配合所设想得到的错误状况来捕捉程序中所有可能发生的错误。但为了捕捉这些错误,编写出来的程序代码中经常有很多if语句,有时即使这样也未必能捕捉到所有的错误,而且这样做势必导致程序运行效率的降低。 Java的异常处理机制恰好改进了这一点,它具有易于使用,可自行定义异常类,处理抛出异常的同时不会降低程序的运行速度等优点。因而在Java程序设计时,应充分地利用Java的异常处理机制,以增进程序的稳定性,提高效率。 7.1.2 简单的异常范例 Java本身已有相当好的机制来处理异常的发生。本节主要介绍Java是如何处理异常的。下例TestException7_1是一个错误的程序,它在访问数组时,下标值已超过了数组下标所容许的最大值,因此会有异常发生。 【例7-1】 TestException7_1.java。 在编译时程序不会发生任何错误,但是在执行到第6行时会产生下列错误信息: Exception in thread main java.lang.ArrayIndexOutOfBounds Exception: 10 at TestException7_1.main(TestException7_1.java:6) 错误的原因在于数组的下标值超出了最大允许的范围。Java发现这个错误之后,便由系统抛出“ArrayIndexOutOf BoundsException”这个种类的异常,用来表示错误的原因,并停止运行程序。如果没有编写相应的处理异常的程序代码,则Java的默认异常处理机制会先抛出异常,然后停止程序运行。 7.1.3 发生异常时的处理 TestException7_1的异常发生后,Java便把这个异常抛了出来,可是抛出来之后没有程序代码去捕捉它,所以程序到第6行便结束,程序根本不会执行到第7行。如果加上捕捉异常的程序代码,则可针对不同的异常做妥善的处理。这种处理的方式称为异常处理。 异常处理是由try、catch与finally三个关键字所组成的程序块,其语法如下: 上述语法是依据下列的顺序来处理异常的: (1) ?try程序块若有异常发生,则程序的运行便中断,并抛出“异常类所产生的对象”。 (2) 抛出的对象如果属于catch括号内欲捕捉的异常类,则catch会捕捉此异常,然后进到catch的块中继续运行。 (3) 无论try程序块是否捕捉到异常,或者捕捉到的异常是否与catch括号中的异常相同,最后一定都会运行finally块中的程序代码。 (4) ?finally的程序代码块运行结束后,程序再回到try-catch-finally块之后继续执行。 由上述过程可知,异常捕捉过程中做了两个判断:第一个是try程序块是否有异常产生,第二个是产生的异常是否和catch括号内欲捕捉的异常相同。值得一提的是,finally块是可以省略的。如果省略了finally块不写,则在catch块运行结束后,程序跳到try-catch块之后继续执行。根据这些基本概念与运行的步骤,可以绘制出如图7-1所示的流程图。 异常处理的语法格式中,“异常类”指由程序抛出的对象所属的类,例如例7-1中出现的“ArrayIndexOutOfBounds Exception”就属于异常类的一种。至于有哪些异常类以及它们之间的继承关系,本书后面小节将做更进一步的探讨。下面的程序代码加入了try与catch,使得程序本身具有捕捉异常与处理异常的能力。 图7-1 异常处理的流程图 输出结果: 数组超出绑定范围! 这里一定会被执行! main()方法结束! 程序说明: (1) 第7行声明一个名为arr的整型数组,并开辟了5个数据空间。 (2) 第8行为数组中的第10个元素赋值,此时已经超出了该数组本身的范围,所以会出现异常。发生异常之后,程序语句转到catch语句中去处理,程序通过finally代码块统一结束。 (3) 第5~9行的try块用来检查是否有异常发
您可能关注的文档
- 2015金属结构设计(华科版)课件:绪论(用) .ppt
- 2015金属融化焊基础(机工版)课件:工程结构用钢.ppt
- 2015金属融化焊基础(机工版)课件:有害元素对焊缝金属的作用及其控制.ppt
- 2015金属融化焊基础(机工版)课件:淬火与回火.ppt
- 2015金属融化焊基础(机工版)课件:焊 剂.ppt
- 2015金属工艺学(冶金版)课件:金属液态成形(铸造)的概念.ppt
- 2015金属融化焊基础(机工版)课件:焊接热影响区.ppt
- 2015金属融化焊基础(机工版)课件:焊接热过程.ppt
- 2015金属融化焊基础(机工版)课件:焊条.ppt
- 2015金属融化焊基础(机工版)课件:焊缝金属的构成.ppt
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第2课时 点的坐标特征.pptx
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第3课时 建立适当的平面直角坐标系.pptx
- 北师大版(2024)八年级数学上册课件 4.3 一次函数的图象 第1课时 正比例函数的图象及性质.pptx
- (人教A版数学选择性必修三)讲义第15讲7.1.1条件概率(学生版+解析).docx
- (人教A版数学选择性必修三)讲义第19讲8.1成对数据的统计相关性(8.1.1变量的相关关系+8.1.2样本相关系数)(学生版+解析).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第2课时 加减消元法.pptx
- (人教A版数学选择性必修一)2025年秋季学期讲义第01讲1.1.1空间向量及其线性运算(学生版+教师版).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第1课时 代入消元法.pptx
- 北师大版(2024)八年级数学上册课件 5.3 二元一次方程组的应用 第3课时 二元一次方程组的应用(3).pptx
- 北师大版(2024)八年级数学上册课件 5.4 二元一次方程与一次函数 第2课时 用二元一次方程组确定一次函数表达式.pptx
最近下载
- 内蒙古自治区矿产资源储量.doc VIP
- 高三英语语法填空题20套(带答案)含解析.docx VIP
- 冠脉分叉病变并严重钙化的pci处理_陈竹君.ppt VIP
- 939_98G359-3悬挂运输设备轨道.pdf VIP
- 危险化学品目录(2025版) .pdf VIP
- 2025年全国预防接种技能竞赛【决赛】考试题库(含答案).docx VIP
- GB 50345-2012 屋面工程技术规范.docx VIP
- 中国铀矿山绿色安全的现状与发展思路参考.pdf VIP
- 2025年云南省投资控股集团有限公司人员招聘笔试备考试题及完整答案详解一套.docx VIP
- 冠脉分叉病变并严重钙化的PCI处.pptx VIP
文档评论(0)