捕获例外:java
Java产生例外对象后,会去寻找可以处理此例外的方法并交之处理,这一过程成为捕获(catch)。若找不到,运行时系统将终止程序员
抛弃例外:数组
一个方法若不知道如何处理出现的例外,可声明抛弃(throws)ide
jdk中,每一个包都定义了例外类,全部的例外类都直接或间接继承于Throwable类。spa
java中的例外类可分为两大类:.net
errororm
exception对象
运行时例外:继承
继承于RuntimeException的类都属于运行时例外,如算数(除零),数组越界等,因为例外产生的位置是未知的,java编译器容许程序员在程序中不对它们做出处理。事件
非运行时例外:
除运行时例外,即是非运行时例外,如FIleNotFindException(文件未找到例外),java编译器要求对这种例外必须做出处理,捕获例外或抛弃例外
例外的处理
捕获例外
经过try-catch-finally语句实现
try:try语句所限定的代码块在执行过程中可能会产生例外对象并抛弃。
catch:每一个try块能够伴随一个或多个catch语句,用于处理try块中所生成的例外事件。catch语句只需一个形参指明它所可以捕获的例外类型,这个类必须Throwable的子类,运行时系统经过参数值把被抛弃的例外对象传递给catch块。
类Throwable提供了getMessage()方法:获得异常的相关信息,printStackTrace()用来跟踪事件发生时执行堆栈的内容。
catch语句的顺序,第一个例外捕获到后,剩下catch再也不捕获。故catch安排的顺序应该为从特殊到通常。即先安排子类在安排父类。
finally:为统一的出口,不管有无例外,都会执行。
抛弃例外:
若是一个方法中生成了一个例外,可是这一方法并不确切地知道该如何处理这一异常事件。
此时,这一方法应当声明抛弃例外,使得例外对象能够从调用栈向后传播,直到有合适的方法捕获它为止。
声明抛弃:
声明抛弃例外实在一个方法声明中的throws子句中指明的。
public int read() throws IOException {
...
}
抛出例外:
抛出例外就是产生例外对象的过程。首先生成例外对象,由虚拟机或者某些类的实例生成。经过throw语句实现。
IOException e = new IOException();
throw e;
PS:有问题能够在http://java.tanzhouedu.net,或在群:457036818中提出