其中各个类的含义如下:
-
Throwable
:异常的基类,所有异常都继承自java.lang.Throwable
类,Throwable
类有两个直接子类:Error
类和Exception
类。 -
Error
:是 Java 应用程序本身无法恢复的严重错误,应用程序不需要捕获、处理这些严重错误。通常情况下,程序员无需处理此类异常。 -
Exception
:由 Java 应用程序抛出和处理的非严重错误(即异常),也是我们本章重点学习的对象。异常可分为运行时异常(RuntimeException
)和检查时异常(CheckedException
)两种。 -
RuntimeException
:运行时异常,即程序运行时抛出的异常,程序员在编程时即使不做任何处理,程序也能通过编译。前面数组下标越界异常和除数为 0 的异常都是运行时异常。 -
CheckedException
:检查时异常,又称为非运行时异常,这样的异常要求程序员必须在编程时进行处理,否则就会编译不通过。需要特别注意的是,在 JDK 的异常定义体系中(即在所有Throwable
的子类中),并不存在真正的CheckedException
类。也就是说,上图中的所有类名,都能在 JDK 中找到对应的 API,但唯独CheckedException
类并不是真实存在的。一般而言,如果一个类继承自RuntimeException
,就称此类为运行时异常;反之,如果一个类没有继承RuntimeException
,但继承了Exception
或Throwable
,就称此类为检查时异常。