异常
已检查异常
已检查异常的父类是Exception,指已经预料到的异常,需要进行处理。
未检查异常
未检查异常又称为运行时异常,指无法提前预料到的异常,一般是程序有误或程序员粗心导致的。
异常的处理
异常的处理有两种方式,自行解决,即使用try-catch-finally代码块,和向上抛出,即使用throw关键字。
try-catch
1、一个try可以有多个catch,但是最多只有一个catch被执行,一个catch可以抓多个异常,catch的顺序子异常在前,父异常在后,若异常之间没有关系则可变。
2、出现异常之后位置后续try部分代码执行不到,但是不影响catch后续代码的执行。
3、finally可以选择性添加,指的是无论异常是否发生,都会执行的代码块。(一般用来关闭资源)
4、catch可以任意抓取未检查异常,但不能随意抓取已检查异常。
5、try - catch - finally 在try中遇到return时,会执行finally,finally的代码块不影响return值。
throw
1、throw:可以接一个异常对象 ,取代return。
格式:throw new xxException(“异常信息”)
在方法声明后面加throws xxException配合,且必须是该异常或其父类。
2、方法调用者也需要处理这个异常(try,throws),且异常到主方法抛出,JVM作中断处理(主方法中一般做try-catch处理)。
3、处理异常的原则:能自己处理的自己处理,不能处理的向上抛出。
自定义异常
1、希望是已检查异常,继承Exception,希望是未检查异常,继承RuntimeException。
2、调用父类构造器。