Java Exception异常分类(牛客)

Java Exception异常分类(牛客)
A.RuntimeException是那些可以在Java虚拟机的正常操作期间抛出的异常的超类。(定义)
B.方法不必在其throws子句中声明在方法执行期间可能抛出但未被捕获的RuntimeException的任何子类。(RuntimeException异常不需要声明抛出或者被捕获)
C.RuntimeException是Throwable的一个子类,它指出一个合理的应用程序不应该试图捕捉的严重问题。(Error定义)
D.空指针异常(NullPointerException)是一种运行时异常(RuntimeException)。
Java Exception异常分类(牛客)
大佬们解释得真好。

运行时异常: 都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等。运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过。
非运行时异常 (编译异常): 是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。

非运行异常(编译异常) 一定需要throws 异常,以待捕获或继续抛出,是因为运行时异常一旦发生,程序会停止
运行时异常 jvm会自动补throws,所以不写也不会出错,写上也行

异常(exception)问题经常在笔试面试被问到,还很诡异的总是记不住。泪目。
庄周晓梦迷蝴蝶,望帝春心托杜鹃。——李商隐