Java异常的层次结构


Throwable有两个直接的子类: Error、Exception。

Error

JVM内部的严重问题,比如资源不足等,无法恢复。
处理方式: 程序员不用处理

Exception

JVM通过处理还可回到正常执行流程,即:可恢复。
分RuntimeException和其他Exception,或者说分为非受检异常(unchecked exception)和受检异常(checked exception)也可以称为运行时异常和编译时异常

1
使用建议:将checked exceptions用于可恢复的情况,将unchecked exception用于编程的错误。

运行时异常RuntimeException(unchecked exception)
处理或者不处理都可以(不需try…catch…或在方法声明时throws)

编译时异常,其他Exception(checked exception)
Java编译器要求程序必须捕获(try…catch)或声明抛出(方法声明时throws)这种异常。