Java异常体系
java异常体系继承图
Throwable
Throwable类是所有异常的父类,常见的子类有两个Error、Exception。
Error
Error类就是程序运行时候抛出的最严重级别的错误了,一般是java虚拟机内部的错误,如VirtualMachineError(包括OutOfMemoryError,StackOverflowError等),ThreadDeath等。抛出了Error的程序从Java设计的角度来讲,程序基本不可以通过后续代码修复。所以一般来讲设计程序的时候几乎很少要去捕获Error异常(Error错误也是可以捕获的)。
Exception
Exception类是程序本身可以处理的异常,其中Exception又分为RunTimeException和其他Exception。
RunTimeException运行时异常,又称不受检查异常,因为不受检查,所以在代码中可能会有RunTimeException时Java编译检查时不会告诉你有这个异常,但是在实际运行代码时则会暴露出来,比如经典的1/0,空指针,数组下表越界等。如果不处理也会被Java虚拟机自己处理。
其他Exception,受检查异常,这种异常必须要开发者解决以后才能编译通过,解决的方法有两种,1:throw到上个方法,2,try-catch处理。