异常
概念
程序出现的不正常情况
异常的体系
Throwable
Error 严重问题,我们不处理
Exception
RuntimeException 运行期异常,我们需要修正代码
非RuntimeException 编译期异常,必须处理的,否则程序不通过
异常的处理
JAVA的默认处理
把异常的名称,原因,位置信息输出在控制台,但是呢程序不能继续执行了
自己处理
try...catch...finally
自己编写处理代码,后面的程序可以执行
throws
把自己处理不了的,在方法上声明 ,告诉调用者,这里有问题
finally关键字
finally用于释放资源,它的代码永远会执行。特殊情况:在执行到finally之前jvm退出了
a:final,finally,finalize的区别?
b:如果在catch里面有return,请问finally还执行吗?如果执行,在return前还是后
会,前。
异常处理的变形
try...catch...finally
try...catch...
try...catch...catch...
try...catch...catch...fianlly
try...finally
自定义异常
继承自Exception或者RuntimeException,只需要提供无参构造和一个带参构造即可
异常的注意实现
A:父的方法有异常抛出,子的重写方法在抛出异常的时候必须要小于等于父的异常
B:父的方法没有异常抛出,子的重写方法不能有异常抛出
C:父的方法抛出多个异常,子的重写方法必须比父少或者小