第5讲 异常处理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图5.1 Java程序发现错误和异常 public class Throwable implements Serializable { public Throwable ( ) public Throwable (String message) public String getMessage ( ) //获得异常信息 public String toString ( ) //获得异常对象的描述信息 public void printStackTrace ( ) //显示异常栈跟踪信息 } 图5.4 异常处理语句的执行流程 5.2.2 异常处理语句 (2) 捕获异常并处理 执行try子句出现运行错时,Java抛出一个异常对象,由 catch子句捕获并处理该异常对象。 若catch子句中声明的异常类是该异常对象所属的类或其祖先 类,则该catch子句捕获到了该异常对象,再执行该catch子句。 catch子句捕获异常的匹配规则如下: 抛出异常对象与catch子句参数类型相同; 抛出异常对象为catch子句参数类的子类; 按照先后次序捕获抛出异常对象,只捕获一次。 抛出的异常对象和catch子句中异常类的关系: 5.2.2 异常处理语句 2. 异常处理语句执行过程 (2) 捕获异常并处理 Java按照多个catch子句的书写次序从上向下依次查找每个 catch子句中的异常类,一旦异常对象被某个catch子句捕获并 处理后,Java将自动清除该异常对象,其它catch子句或外层 的try语句将不能再捕获该异常对象。 通常最后一个catch子句的异常类参数声明为Exception, 这样能够保证捕获和处理所有异常对象。 =多个catch子句需要按异常类从子类到父类的次序依次排列。 5.2.2 异常处理语句 2. 异常处理语句执行过程 (3) 执行finally子句 finally子句中的语句系列是最后必须执行的代码,无论 是否产生异常。 当try子句中的某条语句产生一个异常时,该语句之后的 语句序列都将不会被执行。如果有些语句肯定需要被执行, 不管是否产生了异常,则这些语句需要写在finally子句中。 注:try-catch- finally 语句的结构使正常执行的语句与异常处 理的语句分离,增强了程序的可读性。 5.2.2 异常处理语句 【例5.4】求数组元素的平均值。 public class ArrayAverage1 { public static double average(int table[]) //求数组元素的平均值 { double sum=0.0; for (int i=0;itable.length;i++) //避免数组下标越界异常 sum += table[i]; return sum / table.length; } } table=null时,访问table.length产生空对象异常; table=!null table.length==0时,除数为0无法计算平均值。 int y[]={}; //y!=null, y.length==0 y=new int[0]; //y!=null, y.length==0 ① average()方法中采用if 语句对可能出现的运行时错 误进行事先处理 ② tointArray()方法采用异常处理语句对产生的运行时 错误进行事后处理 ③ 采用命令行参数作为输入值 【例5.4】求数组元素的平均值。 5.2.2 异常处理语句 1. 抛出自定义异常对象的throw语句 5.2.3 抛出异常 Java提供给程序主动抛出异常的语句是throw: throw 异常对象 //异常对象是程序创建的制定异常类对象 由throw语句抛出的异常也必须由try语句捕获并处理。 5.2.3 抛出异常 public void set(int age) throws Exception { if (age0 age100) this.age = age; else throw new Exception(IllegalAgeData:); } public void set ( int age) {

文档评论(0)

xiaofei2001128 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档