欢迎来到天天文库
浏览记录
ID:37710545
大小:47.50 KB
页数:6页
时间:2019-05-29
《java异常处理文档》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java异常处理的基本概念 一、错误与异常 根据错误性质将运行错误分为两类:错误和异常。 1.致命性的错误 如程序进入了死循环,或递归无法结束,或内存溢出,这类现象称为错误。 2.非致命性的异常 如运算时除数为0,或操作数超出数据范围,或打开一个文件时,发现文件并不存在,或欲装入的类文件丢失,或网络连接中断等,这类现象称为异常。二、异常处理机制 1.抛出异常 当程序发生异常时,产生一个异常事件,生成一个异常对象,并把它提交给运行系统,再由运行系统寻找相应的代码来处理异常。这个过
2、程称为抛出(throw)一个异常。一个异常对象可以由Java虚拟机生成,也可以由运行的方法生成。 2.捕获异常 异常抛出后,运行时系统从生成对象的代码开始,沿方法的调用栈逐层回溯查找,直到包含相应处理的方法,并把异常对象交给该方法为止,这个过程称为捕获(catch)一个异常。 3.异常处理的类层次 Java通过错误类(Error)和异常类(Exception)来处理错误和异常,而它们都是Throwable类的子类,分别用来处理两组异常。它们的层次结构如图9-1所示。yccl.swf
3、4.程序对错误与异常的三种处理方式: ⑴程序不能处理的错误 Error类为错误类。 ⑵程序应避免而不捕获的异常 对于运行时异常类(RuntimeException),如数组越界等,无须使用try-catch-finally语句,这类异常应通过程序调试尽量避免而不是去捕获它。 ⑶必须捕获的异常 有些异常在编写程序时是无法预料了,如文件没找到异常、网络通信失败异常等。因此,为了保证程序的健壮性,Java要求必须对可能出现这些异常的代码使用try-catch-finally语句,否则编译无法通过。
4、 【例6-1】文件没有找到异常类。 importjava.io.*;publicclassTry3 {publicstaticvoidmain(Stringargs[]) { FileInputStreamfis=newFileInputStream("autoexec.bat"); System.out.println("Icannotfoundthisfile!"); } } 5.常见的公用异常类 下面介绍常见的异常类,它们都是Run
5、timeException的子类。 ⑴算术异常ArithmeticException ⑵空指针异常NullPointerException ⑶类型强制转换异常ClassCastException ⑷数组负下标异常NegativeArraySizeException ⑸数组下标越界异常ArrayIndexOutOfBoundsException 6.2异常类的产生、捕获和处理一、异常的产生 以【例6-2】产生数组下标越界异常和除数为0异常为例引出异常的产生。产生数组下标越界异常和除数为0异常
6、publicclassTry1 { publicstaticvoidmain(Stringargs[]) { inti=0; inta[]={5,6,7,8}; for(i=0;i<5;i++) System.out.println("a["+i+"]="+a[i]); } }二、使用try- catch-finally语句捕获和处理异
7、常 在Java的异常处理机制中,提供了try-catch-finally语句来捕获和处理一个或多个异常,语法格式如下: try { <语句1> } catch(ExceptionType1e) { <语句2> } finally { <语句3> } 其中,<语句1>是可能产生异常的代码;<语句2>是捕获某种异常对象时进行处理的代码,ExceptionType1代表某种异常类,e为相应的对象;<语句3>是
8、其后必须执行的代码,无论是否捕获到异常。 catch语句可以有一个或多个,但至少要有一个catch语句,finally语句可以省略。 try-catch-finally语句的作用是,当try语句中的代码产生异常时,根据异常的不同,由不同catch语句中的代码对异常进行捕获并处理;如
此文档下载收益归作者所有