检测异常与非检测异常,try-catch-finally、throws、throw
一、检测异常与非检测异常
下图是异常的简单分类
-
RuntimeException:运行时异常,也叫非检测异常,所有的运行时异常都是RuntimeException类及其子类,该类异常发生在程序运行时,编译器不会强制我们进行处理,但我们应该避免。常见的运行时异常有:FileNotFoundException,SQLException,ClassNotFoundException
-
CheckedException:检测异常,检测异常继承自Exception,除Error和运行时异常之外的都叫检测异常,编译器会强制我们进行处理,否则不能编译。常见的检测异常有:NullPointerException(空指针),IndexOutOfBoundsException(下标越界),ClassCastException(类型强制转换异常)
二、try-catch-finally、throws、throw
-
try-catch-finally:finally是可选部分,finally内的代码一定会被执行
-
try-catch-finally与throws:是真正将异常处理掉了,而throws是将异常抛给调用者,没有真正处理
-
throws与throw:
throws是一种异常处理方式,声明在方法的声明处
throw是抛出一个异常对象,生成异常对象的过程,声明在方法体内