Java程序中的异常对象,都是派生于Throwable类的一个实例。
派生于Error类和RuntimeException类的异常称为未检查异常,其他所有异常为已检查异常,已检查异常必须异常处理,抛出或者捕获
抛出异常格式:throws Exception 或 throws EventException , LSException
注意:子类方法声明的已检查异常不能比超类更通用(范围更大),如果超类没有抛出,则子类只能捕获。
未检查异常要么不可控制(Error),要么避免发生(RuntimeException)
try {
Object obj = new Object();
} catch (Exception e) {
e.printStackTrace();
} finally {
}
捕获异常可以必须有try,catch和finally其中一个,catch可以有多个,但是异常范围不能递减。
- 如果没有异常,执行完try和finally。
- try抛出异常,catch捕获不到,终止try剩余代码,执行finally,然后抛出异常给调用者。
- try抛出异常,catch可以捕获,终止try剩余代码,执行catch,finally。
如果finally出现return,会覆盖之前return的结果,并且finally中对return的对象进行改变,也可以影响结果