首页 > 代码库 > Java基础——异常(3)

Java基础——异常(3)

小节:

异常其实就是将问题进行封装,抛给调用者。

如果声明了,就需要调用者处理(继续抛或者捕获)。

什么时候声明?什么时候捕获?

功能内部可以解决就捕获,不能解决或者解决还必须告诉调用者问题,这时就应该声明。

finally的作用:无论是否有异常发出,都需要资源进行释放。资源释放就是定义在finally的代码块中。

 

练习:老师用电脑上课。电脑可能出现的问题是:电脑蓝屏、电脑冒烟。

 

异常转换:根据不同的对象产生不同的异常。

              封装本层异常,对外暴露对方能处理的异常。

 

覆盖时

子类方法覆盖父类方法只能抛出父类方法异常或者该异常的子类。如果父类方法抛出多个异常,子类只能抛出父类异常的子集。

原则:就是子类的异常必须要在父类的异常处理控制中。

注意:有一种情况只能try不能throws。被覆盖的方法没有抛出异常(像接口中的方法),那么子类在覆盖时,子类方法发生了异常,只能try。(很多情况是子类方法抛出RuntimeException异常,这样就不用声明)。