意外捕捉的次序

首先按照意外的类型进行捕捉，对于不匹配的意外类型，则继续抛出，由上层的代码进行处理。

捕获异常的顺序和catch语句的顺序有关，当捕获到一个异常时，剩下的catch语句就不再进行匹配。因此，在安排catch语句的顺序时，首先应该捕获最特殊的异常，然后再逐渐一般化。也就是一般先安排子类，再安排父类。例如上面的程序如果安排成如下的形式：

try{
......
}catch(IOException e ){
System.out.println( e );
System.out.println( "message: "+e.getMessage() );
e.printStackTrace( System.out );
}catch(FileNotFoundException e ){
System.out.println( e );
}

由于第一个catch语句首先得到匹配，第二个catch语句将不会被执行。编译时将出现“catch not reached”的错误。