Java异常
抛出异常
抛出异常分两步:
-
创建某个
Exception
实例 -
用
throw
语句抛出
知识点:当一个异常被抛出后,如果被别的方法捕获后又抛出了另一个异常,那就看不到原始异常了:当
process2()
抛出NullPointerException
后,被process1()
捕获,然后抛出IllegalArgumentException()
,那新的异常丢失了原始异常信息,就看不到原始异常NullPointerException
的信息了。
为了能追踪到完整的异常栈,在构造异常的时候,把原始的Exception
实例传进去,新的Exception
就可以持有原始Exception
信息,如下面代码的throw new IllegalArgumentException(e)
public class Main {
public static void main(String[] args) {
try {
process1();
} catch (Exception e) {
e.printStackTrace(); //可以打印异常的传播栈,对于调试非常有用
}finally {
System.out.println("End...");
}
}
static void process1