Throwable包含了错误(Error)和异常(Excetion两类) Exception又包含了运行时异常,和非运行时异常。
java有俩种异常类型:受检查异常和运行时异常((RuntimeException, 又叫非检查异常 )
受检查异常:
这些异常从程序的角度来说是必须经过捕捉处理的,否则编译通不过,比如IOException,SQLException。
不受检查异常:
可分为Error和运行时异常,Error是程序无法处理的如OutOfMemoryError,如果出现Error,java虚拟机会终止线程。
运行时异常,如RunTimeException,IndexOutOfBoundsException,NullPointerException,这些异常一般是由程序的逻辑错误引起的,解决此类异常应该仔细排查程序,不需要进行检查。
两者的区别
1.非检查异常表示无法让程序恢复运行的异常,导致这种异常的原因通常是由于执行了错误的操作。一旦出现错误,建议让程序终止。
2.受检查异常表示程序可以处理的异常。如果抛出异常的方法本身不处理或者不能处理它,那么方法的调用者就必须去处理该异常,否则调用会出错,连编译也无法通过。
原文:https://www.cnblogs.com/jingpeng77/p/13735400.html