在Java程序设计语言中,异常对象都是派生于Throwable类的一个实例,所有的异常都是Throwable继承来的,后面又分为Error和Exception这两个类
-
Error类描述了Java运行时系统的内部错误和资源耗尽错误。应用程序不应该抛出这种类型对象。如果出现这种内部错误,除了通告给用户,并尽力使程序安全的终止外,再也无能为力。这种情况很少出现
-
我们更需要关注的是Exception层次结构,这个层次又分解为两个分支:一个分支派生于RuntimeException;另一个分支包含其他异常。其划分标准为:由程序错误导致的异常属于RuntimeException;而程序本身没有问题,但是由于像I/O错误这类问题导致的异常就属于其他异常
派生于RuntimeException的异常包涵一下几种情况:
-
错误的类型转换
-
数组访问越界
-
访问null指针
不是派生于RuntimeException的异常包括:
-
试图在文件尾部后面读取数据
-
试图打开一个不存在的文件
-
试图根据给定的字符串查找Class对象,而这个字符串表示的类并不存在
“如果出现RuntimeException异常,那么就一定是你的问题”,是一条相当有道理的规则。



