目录
JAVA异常处理
Java中的异常又称为例外,是一个在程序执行期间发生的事件,它中断正在执行程序的正常指令流。为了能够及时有效地处理程序中的运行错误,必须使用异常类,这可以让程序具有更好的容错性和健壮性。
JAVA异常类型
在Java中,所有的异常类都是从java.lang.Exception类继承的子类。Exception类又是Throwable的子类,除了Exception类外,Throwable类还有一个Error子类。Error类及其子类用于描述Java运行系统中的内部错误及耗尽资源的错误,这类错误比较严重;Exception类一般通过捕获处理后,程序可以继续执行,这种错误是非致命性的。Exception类又分为RuntimeException类和非RuntimeException类,关系图如下所示:
JAVA捕获异常
在Java中,捕获异常会使用try…catch…finally语句。其中,try语句块中是可能发生异常的代码,如果发生异常,那么异常对象就会被抛出,catch语句块就会根据所抛出的异常对象进行捕获,并对这个异常做相应的处理;反之,catch语句块将被忽略,程序将从catch语句块后的第一条语句开始执行,而不会执行try语句块中发生异常语句后面的代码;finally语句块是异常处理结构的最后执行部分,无论try语句块中的代码是否产生异常,finally语句块都将得到执行。try…catch…finally语句块的语法如下:
try{
//代码块
}catch(异常类名 异常对象名){
//对异常进行处理
}
…
finally {
//代码块
}
super()和super(参数列表)语句用法
super是指向父类的引用,如果构造方法没有显示地调用父类的构造方法,那么编译器会自动为它加上一个默认的super()方法调用。如果在子类中需要调用父类不带参数的构造方法,还可以显示地使用super();如果在子类中需要调用父类带参数的构造方法,就必须使用super(参数列表)。注意,super()或super(参数列表)语句必须放在构造方法体的第一行,如:
class TickException extends Exception {
public TickException(String message) {
super(message);
}
}
通过throw关键字抛出异常
throw关键字通常在方法体中使用,并且常常用于抛出一个用户自定义的异常对象。当程序执行到throw语句时立即终止,throw后面的语句将不再执行。可以使用try…catch…finally语句捕获throw抛出的异常,通常将使用了throw关键字的方法放置到try语句块,然后,通过catch语句块对异常进行处理。