Java异常
Java 异常体系
-
Java.lang.Throwable
-
Error
- 虚拟机错误 - VirtualMachineError
- 内存溢出 - OutOfMemoryError
- 线程死锁 - ThreadDeath
-
Exception
-
RuntimeException
- 空指针异常 - NullPointerException
- 数组下标越界异常 - ArrayIndexOutOfBoundsException
- 算术异常 - ArithmeticException
- 类型转换异常 - ClassCastExcepption
- IO 异常 - IOException
- SQL 异常 - SQLException
- ...
-
-
错误(Error): 无法被处理,属于严重问题。
异常(Exception): 可以被处理
- 运行时异常:
RuntimeException及其子类,运行时才会出现的异常。 - 编译时异常:
Exception及其子类,必须在编译时处理,否则程序无法通过编译。
自定义异常
运行时异常
定义一个异常类继承 RuntimeException,并重写构造器:
public class 异常类 extends RuntimeException {
public 异常类() {
}
public 异常类(String message) {
super(message);
}
}
通过 throw new 异常类(...) 来创建异常对象并抛出。
编译时异常
异常类改为继承 Exception 类,抛出异常的方法需要使用 throws 继续将编译时异常向上层抛出。
异常的处理
抛出异常(throws)
方法 throws 异常1, 异常2, 异常3, ... {
...
}
或直接
方法 throws Exception {
...
}
捕获异常(try…catch)
try {
...
} catch(异常类型1 e) {
...
} catch(异常类型2 e) {
...
}
或直接
try {
...
} catch(Exception e) {
e.printStackTrace();
}