1所有的异常都是由Throwable继承而来的,分为两个分支,error和exception
error层次结构描述了Java运行时的内部错误和资源好近错误,出现这类错误,尽力使程序安全终止之外,再也无能为力
exception层次的异常又分解为两个分支:RuntimeException和其他异常,由程序错误导致的异常属于RuntimeException,程序本身没有问题,但由于像I/O这类错误导致的异常属于其他异常
2 派生于RuntimeException的异常:
错误的类型转换,数组访问越界,访问null指针
不是派生于RuntimeException的异常包括:
试图在文件末尾读取数据,试图打开一个不存在的文件,试图根据给定字符串查找Class对象,而这个字符串表示的类不存在