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

Java程序的设计基础第6章 Java异常处理.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java程序的设计基础第6章 Java异常处理.ppt

2. catch语句 每个try语句必须伴随一个或多个catch语句,用于捕获try代码块所产生的异常并做相应的处理,而且多个catch语句之间可以交换顺序。catch语句有一个形式参数,用于指明其所能捕获的异常类型,运行时系统通过参数是否和抛出的异常对象是否匹配来捕捉异常。参数匹配,满足下面三个条件任何一种,异常对象被接收: (1) 异常对象与参数属于相同异常类; (2) 异常对象属于参数异常类的子类; (3) 异常对象实现了参数异常类所定义的接口。 6.2.2 捕捉异常 3. finally语句 finally语句为异常处理提供一个统一的出口。无论try所指定的程序块中抛出或不抛出异常,也无论catch语句的异常类型是否与所抛出的异常类型匹配,finally所指定的代码都要被执行,它提供了统一的出口。 通常在finally语句中可以进行资源的清除工作,如关闭打开的文件和关闭数据流等。 6.2.2 捕捉异常 当我们在设计自己的类包时,应尽最大的努力为用户提供最好的服务,并且希望用户不要滥用我们所提供的方法,当程序出现某些异常事件时,我们希望程序足够健壮,这时就需要用到异常机制。在选择异常类型时,可以使用Java类库中已经定义好的类,也可以自己定义异常类。 当自定义异常是从RuntimeException及其子类继承而来时,程序中可以不捕捉并处理它。当自定义异常是从Exception及其其他子类继承而来时,该自定义异常在程序中必须捕捉并处理它,那么自定义异常不仅要用try-catch-finally捕获,还必须由用户自己定义和抛出,一般流程如图6-3所示。 6.3 使用用户自定义异常 定义异常 抛出异常 捕捉异常 图6-3 定义和使用自定义异常流程 【例6.5】计算两个数之和,当任意一个数超出范围时,抛出自己的异常。 第一步,定义NumberRangeException异常类: class NumberRangeException extends Exception{ public NumberRangeException(String msg) { super(msg); } } 6.3 使用用户自定义异常 第二步,定义一个计算两数和的方法CalcAnswer(),当操作的数不是在10和20之间时,抛出NumberRangeException异常: public int CalcAnswer(String str1, String str2) throws NumberRangeException{ int int1, int2; int answer = -1; try{ int1 = Integer.parseInt(str1); int2 = Integer.parseInt(str2); if( (int1 10) || (int1 20) || (int2 10) || (int2 20) ){//判断范围 NumberRangeException e = new NumberRangeException (Numbers not within the specified range.); throw e; //抛出NumberRangeException异常对象 } answer = int1 + int2; //没有异常发生,计算两数之和 }catch (NumberFormatException e){ System.out.println( e.toString() ); //输出异常信息 } return answer; } 6.3 使用用户自定义异常 【例6.6】在定义银行类时,若取钱数大于余额则作为异常处理。 第一步,定义InsufficientFundsException异常类: class InsufficientFundsException extends Exception{ private Bank excepbank; //银行帐户 private double excepAmount; //余额 Insufficien

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档