Throwale
/ \
Error Exception
/ \
IOException RuntimeException
非受查异常:包括Error和RuntimeException及其子类,运行会报错,比如空指针,类转换异常等等,需要人手动修改代码,才能编译通过,运行,java异常机制可以不处理
受查异常:最典型的就是IOException 写这些代码时经常需要捕获异常或者抛出,通过try-catch可以解决,Java异常机制可以解决的异常,java异常机制要处理,否则不能编译
小案例:
getCustomerInfo()方法如下,try中可以捕获三种类型的异常,
如果在该方法运行中产生了一个IOException,将会输出什么结果
public void getCustomerInfo() {
try {
// do something that may cause an Exception
} catch (java.io.FileNotFoundException ex)
System.out.print(“FileNotFoundException!”);
} catch (java.io.IOException ex){
System.out.print(“IOException!”);
} catch (java.lang.Exception ex){
System.out.print(“Exception!”);
}
}
结果是IOException!
注意:对于catch子句的排列,子类在先,父类在后,catch块中包括多个异常类,这些异常类的匹配原则是:接catch块中异常类的排列顺序,寻找第一个能够匹配(也就是做出的异常对象属于catch块的异常类,或是catch块中异常类的)。