最简单的判断点有两个:1.继承自Runtime Exception或 Error 的是非检查型异常,而继承自 Exception 的则是检查型异(当然,Runtime Exception 本身也是 Exception 的子类)。2.对非检查型类异常可以不用捕获,而检查型异常则必须用try语句块进行处理或者把异常交给上级方法处理总之就是必须写代码处理它。 Java 的异常结构如下图。其中直接继承 Exception 的异常,必须捕获,属于检查型异常。其他的可以不用捕获,属于非检查型异常。