爱悠闲 > Java初学(六)——J2SE之面向对象编程5(异常处理)

Java初学(六)——J2SE之面向对象编程5(异常处理)

作者: u010631955 相关  |  发布日期 : 2015-05-27  |  热度 : 343°

一、异常处理

1、 定义:Java异常是指Java提供的用于处理程序中错误的一种机制,错误是指运行期出现的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在)。

注意:观察错误的名字和行号最重要  

2、 抛出异常(throw):Java程序的执行过程中如出现异常事件,可以生成一个异常类的对象,该异常对象封装了异常事件的信息并将被提交给Java运行时系统。

3、 捕获异常(catch):当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理。

4、 异常的分类:       ↗Error(系统错误)

Throwable(可被抛出的) ↘Exception(可处理错误)↗RuntimeException (经常出的错)

↘其它错误(必须catch)

注意:RuntimeException可以处理也可以不处理

5、 异常的捕获和处理

(1)   try语句

a、 try {…}语句指定了一段代码,该代码就是一次捕获并处理例外的范围;

b、 在执行过程中,该代码可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理;

c、 如果没有例外产生,所有的catch代码段都被略过不执行。

(2)  catch语句

a、 catch语句块中是对异常进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象

b、 catch中生命的异常对象封装了异常事件发生的信息,在catch语句块中可以使用这个对象的一些方法获取这些信息。

( 3 )    finally语句

a、 finally语句为异常处理提供一个统一的出口,使得在控制流程序转到程序的其他部分以前,能够对程序的状态作统一的管理;

b、 无论try所指定的程序块中是否抛出例外,finally所指定的代码都要被执行。

 

4)代码格式

try {

//可能抛出异常的语句

} catch (SomeException1 e)

{

  … ……

} catch (SomeException2 e)

{

… … …

} finally {

  … ……

}

 

5)解释

atry代码段包含可能产生例外的代码;

btry代码段后跟有一个或多个catch代码段;

c、每个catch代码段声明其能处理的一种特定类型的异常并提供处理的方法;

d、当发生异常时,程序会中止当前的流程,根据获取异常的类型去执行相应的catch代码段;

efinally段的代码无论是否发生异常都有执行。

( 6 ) 执行时的情况

捕获SomeException2

 

没有捕获到异常时

 

 

7Java的例外处理机制使得例外事件,沿着被调用的顺序往前寻找,只到找到符合该例外种类的例外处理程序

8)注意

a、在一个try语句块中,基类异常的捕获语句不可以写在子类异常捕获语句的上面。(先逮小的,再逮大的)

b、自定义异常:

通过java.lang.Exception类声明自己的异常类;在方法适当的位置生成自定义异常的实例,并用throw语句抛出;在方法的声明部分用throws语句声明该方法可能抛出的异常。

 

 

c、重写方法需要抛出与原方法所抛出异常类型一致异常或不抛出异常