- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
6、chapter06异常处理.ppt
* 第六章 异常处理 浙江工业大学 计算机学院 赵小敏 zxm@ 59:9001 * 主要内容 异常的概念 异常的处理 自定义异常 * 6.1异常的概念 异常(Exception)是正常程序流程所不能处理或没有处理的异常情况或异常事件。 试图打开的文件不存在 网络连接中断 算术运算被0除 数组下标越界 要加载类文件不存在 * 为什么需要异常? 强制程序异常/错误处理 同时指定需要异常的种类 异常处理模型提供了一种统一处理异常/错误的模式 传统程序方法: 设置标志位,或返回错误码,分别处理各种异常情况。但在编程时常常出现这样的情况:忘了对某些异常情况进行处理,尤其是当存在多个分支或者多个开发人员共同开发程序时。 简化对异常情况的处理,减少if-else语句 * 例:数组下标越界出现异常 public class ArrayIndexOutOfBoundsExceptionDemo{ public static void main(String args[ ]){ int i=0; String greetings[ ]={Hello World!,Hello!, HELLO WORLD!!}; while ( i4){ System.out.println(greetings[i]); i++; } } } Hello World! Hello! HELLO WORLD!! Exception in thread main java.lang.ArrayIndexOutOfBoundsException: 3 at ArrayIndexOutOfBoundsExceptionDemo.main( ArrayIndexOutOfBoundsExceptionDemo.java:7) * Java中定义的异常 Java中定义了各种异常/错误类。 Java.lang.Throwable是这些类的父类。 Throwable Error Exception VirtualMachineError AWTError RuntimeException IOException EOFException FileNotFoundException ArithmeticException NullPointerException ArrayIndexOutOfBoundsException * 处理异常的几种常用方法 一旦捕获异常,马上进行处理 重新抛出异常 捕获异常,但并不处理 通过语句System.exit()退出应用程序 * 6.2异常处理 捕获并处理异常:try-catch-finally语句 try{ //被监视的代码块 } catch(异常类1 对象名1){ / /异常类1的异常处理代码块 } catch(异常类2 对象名2){ //异常类2的异常处理代码块 } finally{ //在try块结束前被执行的代码块 } * try语句块 一般形式: try { //一条或多条可能产生异常的java语句。 } try 语句后必须跟随至少一个catch或finally语句块。 发生异常时try块内的后续语句不再执行 * catch语句块 catch语句块提供错误处理。 一般格式: catch (ThrowableObject variableName) { //当捕获到异常时执行的java语句。 } catch按照次序进行匹配检查处理,找到一个匹配者,不再找其它; catch的排列要按照先个别化再一般化的次序,不能将父类异常排在前、子类异常排在后。 * finally语句块 它是异常处理的统一出口,常用来实现资源释放,如文件关闭、关闭数据库连接等。 将先前方法的状态清除,并可以将控制转移到程序的其他地方。 除遇到System.exit();强制退出程序外, finally 语句块无论是否发生异常都要执行。 * 异常的捕获与处理 当程序运行中发生异常时,异常处理机制将按以下步骤处理: 产生异常对象并中断当前正在执行的代码,抛出异常对象。 自动按程序中的catch的编写顺序查找“最接近的”异常匹配。一旦找到就认为异常已经得到控制,不再进行进一步查找。这个匹配不需要非常精确,子类对象可以与父类的catch相匹配。 若有匹配则执行相应的处理代码,然后继续执行本try块之外的其他程序。否则这个没有被程序捕获的异常将由缺省处理程序处理,缺省处理程序将显示异常的字符串、异常发生位置等信息,终止整个程序的执行并退出。 * 异常处理——抛出异常:throws语句 可能产生异常的方法表明将不处理该异常,而该异常将被抛到调用该
原创力文档


文档评论(0)