- 3
- 0
- 约1.4万字
- 约 48页
- 2017-08-22 发布于湖北
- 举报
Java程序设计-9-异常
问题: 上述捕获的异常都属于运行时异常,错误的原因来自于外部提供了错误的输入,虽然,sum方法捕获了他们,但是有两个问题请考虑: sum捕获了这些问题,真正处理了吗? 调用sum的方法知道自己的错误码? 结论: 运行时异常一般不需捕获(在错误的源头加以避免) 如果需要捕获异常,就需要针对性的处理异常方案 如果方法捕获到异常,但又无法处理,就需要让调用者知道,即将异常报告给调用者,由调用者处理 * 9.2.4 finally语句 finally语句在try/catch/finally是一个可选的部分。finally语句定义一个总是执行的代码块,而不考虑异常是否被捕获。所以它提供了在try/catch代码块执行结束后的后处理机制。例如前面的FileExceptionDemo 中对于创建Scanner对象,应该向下面一样处理: public void showFile(String fileName) { Scanner reader = null; try { File f = new File(fileName); reader = new Scanner(f); while (reader.hasNext()) { System.out.println(reader.next()); } } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (reader != null) { reader.close(); } } } * 关于finally 如果try-catch后有finally,则它是try和catch执行后必经的处理 一个try块可以不执行finally子句就能够退出的唯一方法是通过调用System.exit()方法来实现的。 * 异常发生后的程序流向 如果在try代码块执行中发生了异常,则寻找匹配的异常处理,执行对应异常的处理代码,然后如果有finally块,则执行,执行后顺序执行finally块以后的代码,中间任何地方都不会自动返回(即使在catch中恢复了正常条件,也不会再回到原来发生异常的try中继续执行) * 自定义异常 什么时候需要自定义异常 当用户不能通过返回值向用户反馈程序处理中发生的错误情况时,可以通过抛出异常进行告知。 用户定义异常是通过扩展Exception类或子类来创建的一种具有特殊用途的子类,这种异常类可以包含一个“普通”类所包含的任何东西。 * 9.3自定义异常 可检测异常 可检测异常就是必须按照异常处理机制进行控制的异常。 自定义一个检测异常是通过扩展Exception类或子类(非RuntimeException及其子类)来创建。 非检测异常 非检测异常继承于RuntimeException及其子类,程序可以对一个可能出现的非检测异常不必控制 。 //程序9-4:一个检测异常,用于表明取款时账户余额不足 public class InsufficientFundsException extends Exception{ public InsufficientFundsException(int balance) { super(当前余额是+balance); } } //程序9-5:一个非检测异常,即运行时异常,用于表明取款时账户余额不足 public class InsufficientFundsException extends RuntimeException{ public InsufficientFundsException(int balance) { super(当前余额是+balance); } } * 9.4方法声明抛出异常 语法 (方法声明中的异常) type methodName([type para1[,…]]) throws Exception1[,Exception2…]{ … } public static int parseInt(String?s) throws NumberFormatException 注: 如果一个方法可能抛出的异常属于运行时异常,则不必声明(不声明不等于不会抛出) 一个方法可以声明抛出多种异常,之间用逗号分开; 一个方法如果声明可能抛出checked Exception,则调用者必须负责处理 如果调用者不想使用try-catch机制处理可能的checked Exce
您可能关注的文档
最近下载
- SY-T 5504.3-2008 油井水泥外加剂评价方法 第3部分:减阻剂.pdf VIP
- 【三年级数学】每日口算 30 天.pdf VIP
- 物资采购应急方案.docx VIP
- 餐饮服务与管中职全套完整教学课件.pptx
- 第四版国际压力性损伤溃疡预防和治疗临床指南解读PPT课件.pptx VIP
- 1209 六年级(上)英语知识点汇总(外研版).docx VIP
- ICP-MS介绍讲课课件.ppt VIP
- 6篇2025年度民主生活会“五个带头”对照检查材料(参考范文).docx VIP
- DBJT_15-138-2018_建筑电气防火检测_技术规程-全国各省建筑标准.pdf VIP
- j12ZG604-全国各省建筑标准.pdf VIP
原创力文档

文档评论(0)