异常体系
Java 中所有异常都继承自 java.lang.Throwable,主要分为两大类:
Error
Error是无法处理的,出现后只有一个结果:JVM终止
java
OutOfMemoryError
StackOverflowErrorException
CheckedException
Exception的所有类(除RuntimeException之外)都是编译时异常。
java
public void test() throws IOException {
FileInputStream fis = new FileInputStream("a.txt");
}所有因为外在因素导致的异常都属于这种异常。例如文件不存在与程序无关。
所有编译时异常,都要求程序员在编写程序阶段必须对其进行预处理。如果没有预先处理,编译器会报错
RuntimeException
所有因为程序员编程导致的异常都属于这种异常。程序员应该在编码时避免出现运行时异常。
对于运行时异常我们可以选择处理也可以选择不处理。
java
int a = 10 / 0; // ArithmeticException