Java异常层次与异常分类
一、Java的异常层次
Java的异常层次如下图所示:
Java简化的异常层次结构如上,需要注意的是所有类都是从Throwable继承而来,下一层则分为两个结构,Error和Exception。
Error类层次描述了Java运行时系统的内部错误和资源耗尽错误,这种错误除了简单的报告给用户,并尽力阻止程序安全终止之外,一般没有别的解决方法。
二、Java的异常分类:checked异常与Runtime异常
- Runtime异常(unchecked异常)
Runtime异常是runtime阶段碰到的异常,在编译的时候不需要检查。例如数组脚本越界(ArrayIndexOutOfBoundsException),空指针异常(NullPointerException),类转换异常(ClassCastException)等。
Java中将派生于Error或RuntimeException的异常称为unchecked异常。 - Checked异常
编译器强制checked异常必须try…catch处理或用throws声明继续抛给上层调用方法。
两者的区别:Runtime异常可以处理也可以不处理,编译器不会强制用try…catch或用throws声明,而Checked异常则需要。