Skip to content

异常体系

Java 中所有异常都继承自 java.lang.Throwable,主要分为两大类:

Error

Error是无法处理的,出现后只有一个结果:JVM终止

java
OutOfMemoryError
StackOverflowError

Exception

CheckedException

Exception的所有类(除RuntimeException之外)都是编译时异常。

java
public void test() throws IOException {
    FileInputStream fis = new FileInputStream("a.txt");
}

所有因为外在因素导致的异常都属于这种异常。例如文件不存在与程序无关。

所有编译时异常,都要求程序员在编写程序阶段必须对其进行预处理。如果没有预先处理,编译器会报错

RuntimeException

所有因为程序员编程导致的异常都属于这种异常。程序员应该在编码时避免出现运行时异常。

对于运行时异常我们可以选择处理也可以选择不处理。

java
int a = 10 / 0; // ArithmeticException