Java程序设计-第07章 异常处理.ppt

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

前言 小节安排 7.1、为什么要异常处理 7.1、为什么要异常处理 7.1、为什么要异常处理 7.2、Java中的异常类 7.2、Java中的异常类 7.3、异常处理模式try-catch-finally 7.3、异常处理模式try-catch-finally 7.3、异常处理模式try-catch-finally 7.3、异常处理模式try-catch-finally 7.4、重新抛出异常 7.4、重新抛出异常 7.4、重新抛出异常 7.5、异常处理原则 本章小结 Java程序设计 Java Programming * 第七章 异常处理 图形图像研究所 计算机科学与技术、软件学院 浙江工业大学 高飞,陆佳炜等。Java程序设计实用教程。北京:清华大学出版社,2013(ISBN:978-7-302-31695-4) 高飞,赵小敏等。Java程序设计实用教程习题集。北京:清华大学出版社,2013(ISBN:978-7-302-32051-7) 高飞 教授,博士生导师 Tel.:0571 URL: 本章的目的:为什么要异常处理?异常处理程序怎么编写? 回顾关键词:java.lang包中的Object类、Math类、System类、Runtime类主要方法;java.util包中Date类、Calendar类、Random类以及各种集合;for循环简化方法 异常处理 7.4.1 throws语句 7.3、异常处理模式 7.4、重新抛出异常 7.4.2 throw语句 7.3.1 try-catch-finally语句 7.3.2 异常类成员方法 7.3.3 异常捕获与处理 7.1、为什么要异常处理 7.2、Java中的异常类 7.5、异常处理原则 用户的角度。因为用户非专业人员,或者不熟悉软件系统,在使用过程中常常会出现输入错误的情况,或者是系统级的非正常情况,此时会弹出一个只有专业人员才能读懂的信息。因此,需要由程序对这个专业的非正常信息进行捕获,并给用户一个友好的出错提示。 出现异常不处理,程序会终止,程序终止了,系统不能正常运行。 因为程序的执行过程中总会遇到许多可预知或不可预知的错误事件,例如内存分配、某个目录下本应存在的一个文件找不到、数组越界等等。这些错误事件存在非常大的隐患,因此程序员总需要在程序中不断加入if-else语句,来判断是否有异常出现,程序可读性将变差,总是有许多与真正工作无关的代码,而且也给程序员增加了极大的工作负担,多数类似的处理错误的代码模块将充斥着整个应用逻辑。 异常产生的原因:试图打开的文件不存在、网络连接中断、算术运算被0除、数组下标越界、要加载类文件不存在等 用户的输入都是邪恶的! /*异常事件示例:数组下标越界出现异常*/ public class TestException { public static void main(String args[ ]){ int i=0; String greetings[ ]={Hello World!, Hello!, HELLO WORLD!}; while ( i4){ System.out.println(greetings[i]); i++; } } } 在各种异常类中,父类的优先级会比子类的高,因此,捕获子类异常的代码必须放在捕获父类异常的代码前面。 例如: … catch(RuntimeException e){//捕获RuntimeException异常 … } catch(ArithmeticException e){ //捕获ArithmeticException异常 … } … 异常处理的标准模式为try-catch-finally组合语句: try{ //被监视的一条或多条可能产生异常的java语句 } catch(异常类1 对象名1){ //异常类1的异常处理代码块 } catch(异常类2 对象名2) //异常类2的异常处理代码块 } … catch(异常类j 对象名j) //异常类j的异常处理代码块 } … catch(异常类m 对象名m) //异常类m的异常处理代码块 } finally{ //在try块结束前被执行的代码块 } try{}语句后面必须跟随至少一个catch或finally语句块 try{}中第i行发生异常,则try{}第i行以后的语句将全部被跳过,然后去执行catch或finally语句块 catch块找到一个匹配者,则不再找其他异常了。 当catch语句块

文档评论(0)

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

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

1亿VIP精品文档

相关文档