java标准库内建了一些通用的异常,这些类以Throwable为顶层父类。
Throwable又派生出Error类和Exception类。
错误:Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现
异常:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被java异常处理机制使用,是异常处理的核心。
异常又分为两类:
非必检异常:Error和RuntimeException以及他们的子类。javac在编译时,不会提示和发现这样的异常,不要求在程序处理这些异常。这样的异常发生的原因多半是代码写的有问题。
必检异常:除了Error和RuntimeException的其他异常。javac强制要求程序员为这样的异常做预备处理工作。