java程序设计-第07章 异常处理

上传人:第*** 文档编号:49584476 上传时间:2018-07-31 格式:PPT 页数:17 大小:869KB
返回 下载 相关 举报
java程序设计-第07章 异常处理_第1页
第1页 / 共17页
java程序设计-第07章 异常处理_第2页
第2页 / 共17页
java程序设计-第07章 异常处理_第3页
第3页 / 共17页
java程序设计-第07章 异常处理_第4页
第4页 / 共17页
java程序设计-第07章 异常处理_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《java程序设计-第07章 异常处理》由会员分享,可在线阅读,更多相关《java程序设计-第07章 异常处理(17页珍藏版)》请在金锄头文库上搜索。

1、Java程序设计Java Programming1第七章 异常处理图形图像研究所计算机科学与技术、软件学院 浙江工业大学高飞,陆佳炜等。Java程序设计实用教程。北京:清华大学出版社,2013(ISBN:978-7-302-31695-4) 高飞,赵小敏等。Java程序设计实用教程习题集。北京:清华大学出版社,2013(ISBN:978-7-302-32051-7)高飞教授,博士生导师Tel.:0571-85290535URL: http:/Java程序设计Java Programming2前言本章的目的本章的目的:为什么要异常处理?异常处理程 序怎么编写?回顾关键词回顾关键词:java.la

2、ng包中的Object类、Math类 、System类、Runtime类主要方法;java.util包中 Date类、Calendar类、Random类以及各种集合 ;for循环简化方法Java程序设计Java Programming3小节安排异 常 处 理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、异常处理原则Java程序设计Java Programming47.1、为什么要异常处理用

3、户的角度。因为用户非专业人员,或者不熟悉软件系统,在使用过程中常常 会出现输入错误的情况,或者是系统级的非正常情况,此时会弹出一个只有专 业人员才能读懂的信息。因此,需要由程序对这个专业的非正常信息进行捕获 ,并给用户一个友好的出错提示。 出现异常不处理,程序会终止,程序终止了,系统不能正常运行。 因为程序的执行过程中总会遇到许多可预知或不可预知的错误事件,例如内存 分配、某个目录下本应存在的一个文件找不到、数组越界等等。这些错误事件 存在非常大的隐患,因此程序员总需要在程序中不断加入if-else语句,来判断是否有异常出现,程序可读性将变差,总是有许多与真正工作无关的代码,而 且也给程序员增

4、加了极大的工作负担,多数类似的处理错误的代码模块将充斥 着整个应用逻辑。 异常产生的原因:试图打开的文件不存在、网络连接中断、算术运算被0除、数组下标越界、要加载类文件不存在等用户的输入都是邪恶的! Java程序设计Java Programming57.1、为什么要异常处理Java程序设计Java Programming67.1、为什么要异常处理/*异常事件示例:数组下标越界出现异常*/ public class TestException public static void main(String args ) int i=0; String greetings =“Hello World

5、!“, “Hello!“, “HELLO WORLD!“; while ( i=-2;i-) c=b/i; System.out.println(“i=“+i); catch(ArithmeticException ae) System.out.println(“捕获了一个零除异常“); catch(Exception ex) System.out.println(“捕获了一个未知类型的异常“); finallySystem.out.println(“异常处理结束“); Java程序设计Java Programming117.3、异常处理模式try-catch-finallypublic cl

6、ass TestExcepMethod public static void main(String args) try throw new Exception(“人为抛出的测试异常! “); catch(Exception e) System.out.println(“异常已捕获。“); System.out.println(“e.getMessage(): “ + e.getMessage(); System.out.println(“e.toString(): “ + e.toString(); System.out.println(“e.printStackTrace():“); e.

7、printStackTrace(); Java程序设计Java Programming127.3、异常处理模式try-catch-finallynclass TestExcepRoute npublic static void main(String args) ntry nmethod(); ncatch(Exception e) nSystem.out.print(m); n nSystem.out.println(n); n n nstatic void createException() nthrow new ArrayIndexOutOfBoundsException(); n n

8、nstatic void method() ntry ncreateException(); nSystem.out.print(a); ncatch(ArithmeticException e) n n System.out.print(b); n nfinally nSystem.out.print(c); n nSystem.out.print(d); n ncatch(ArrayIndexOutOfBoundsException e)第一次运行结果:cmn第二次运行结果:bcdnJava程序设计Java Programming137.4、重新抛出异常 throws关键字通常被应用在声明

9、方法时,用来指定可能 抛出的异常 。 对声明了throws方法的调用程序中必须对其进行捕获 。 class TestThrows public static void main(String args) try method(); catch(IOException ioe)/捕获IOException异常 / public void method( ) throws IOException / Java程序设计Java Programming147.4、重新抛出异常 throw关键字通常用在方法体中,并且抛出一个异常对象 在执行到throw语句时立即停止,它后面的语句都不执行 public

10、class TestThrow /创建类 static int quotient(int x,int y) throws MyException/定义方法抛出异常 if(y 0) /判断参数是否小于0 throw new MyException(“除数不能是负数“);/异常信息 return x/y;/返回值 public static void main(String args) /主方法 try /try语句包含可能发生异常的语句 int result = quotient(3,-1);/调用方法quotient() catch (MyException e) /处理自定义异常 Syste

11、m.out.println(e.getMessage(); /输出异常信息 Java程序设计Java Programming157.4、重新抛出异常catch (ArithmeticException e) /处理ArithmeticException异常 System.out.println(“除数不能为0“);/输出提示信息 catch (Exception e) /处理其他异常 System.out.println(“程序发生了其他的异常“); class MyException extends Exception /创建自定义异常类 String message; /定义String类

12、型变量 public MyException(String ErrorMessager) /父类方法 message = ErrorMessager; public String getMessage() /覆盖getMessage()方法 return message; Java程序设计Java Programming167.5、异常处理原则 Java的异常处理是通过5个关键词来实现的:try、catch、throw、 throws和finally。 一般情况下是用try来执行一段程序,如果出现异常,系统会抛出( throws)一个异常,这时候可以通过它的类型来捕捉(catch)它, 或最后

13、(finally)由缺省处理器来处理。 对于一个应用系统来说,抛出大量异常是有问题 的,应该从程序开 发角度尽可能的控制异常发生的可能。 对于检查异常,如果不能行之有效的处理,还不如转换为 RuntimeException抛出。这样也让上级的代码有选择的余地可处 理也可不处理。 对于一个应用系统来说,应该有自己的一套异常处理框架,这样当 异常发生时,也能得到统一的处理风格,将优雅的异常信息反馈给 用户。 能处理就早处理,尽可能在当前程序中解决问题,否则应将异常向 更外层的程序抛出。 简化编码。不要因加入异常处理而使程序变得复杂难懂。Java程序设计Java Programming17本章小结异 常 处 理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、异常处理原则

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号