异常

异常的分类

Java 中所有的异常 Exception 和错误 Error 有一个共同的祖先 Throwable,其中:

  • Error 表示虚拟机内部错误,例如 OutOfMemoryError、StackOverflowError。

  • Exception 又分为两类:

    • 非检查型异常所有 RuntimeException 的子类均是非检查异常。这些异常一般是由程序逻辑错误引起的。对于非检查异常,并不强制要求必须进行处理。例如:NullPointerException、NumberFormatException、IllegalArgumentException、IndexOutOfBoundsException 等。

    • 检查型异常在所有 Exception 的子类中,排除掉 RuntimeException 及其子类,剩下的所有异常均为检查型异常。与非检查型异常不同,检查型异常必须得到处理,否则编译器会报错。例如:InterruptedException、IOException、FileNotFoundException。

throw 与 throws 的区别

  • throw 一般是用在方法体的内部,由开发者定义当程序语句出现问题后主动抛出一个异常。

  • throws 一般用于方法声明上,代表该方法可能会抛出的异常列表。

最后更新于