先看一下类的结构图:
Throwable是所有错误或异常的超类
两个子类:
1、Error:发生在JVM层次的错误,无法捕捉,该错误是不可恢复的。比如OutOfMemoryError。
2、Exception:可恢复的异常。包括以下两种类型:
(1)运行时异常RuntimeException:运行时异常,编译器不会检查运行时异常,编译仍能通过,比如空指针异常,数组越界异常IndexOutOfBoundsException,除数为0的异常ArithmeticException。
(2)检查异常CheckedException:比如IOException、SQLException 和FileNotFoundException 都是检查
异常。它发生在编译阶段,编译器会强制程序去捕获此类异常,需要在编码时用try-catch 捕捉。再如:
当通过clone()方法去克隆一个对象,必须手动捕获CloneNotSupportedException异常。