java 异常顶层父类Throwable,并且实现了Serializable接口。
由Throwable派生出来的异常类有两种:Error类和Exception类。
Error:错误,代表JVM本身的错误,处理程序运行环境方面的异常,不能通过代码处理。比如:OutOfMemoryError、AWTError、ThreadDeath。
Exception:异常,程序运行时发生,可以被Java异常处理机制使用。比如:IOException、SQLException、RuntimeException。
以上Error、RuntimeException是非检查异常。
隐式异常也叫运行时异常或非检查异常,比如,程序中除数为0引起的错误、数组下标越界错误、错误的强制类型转换错误、使用了空对象NulIPointerException等,它们虽然是由程序本身引起的异常,但不是程序主动抛出的,而是在程序运行中产生的。
显式异常也叫非运行时异常或检查异常,比如OException.SQLException,javac强制要求程序员为这样的异常做预备处理工作(使用try…catch…finally或者throws),否则编译不通过。



