所有异常类型都是Throwable类的子类,它派生出两个子类 Error和Exception
Error类:表示紧靠程序本身无法恢复的严重错误,如内存溢出,动态链接失败,虚拟机错误,应用程序不应该抛出该异常,一般是由虚拟机抛出
Exception类:由java应用程序抛出和处理的非严重异常,如文件找不到,
网络链接不上,数组下标越界,null指针异常等
RuntimeException运行时异常:包括RuntimeException及其所以子类,不要求程序必须对它们做出处理,如‘算术异常’,‘参数类型不匹配’等,
在程序中并进行异常处理,仍然可以进行编译和运行,如果发生运行时异常则会输出异常的堆栈信息,并终止程序运
Checked非运行时异常: 其它又Exception继承来的异常类,程序必须捕捉或者声明抛出这种异常,否则会出现编译错误,无法通过编译