因为你调用f()方法的时候将出现的ExceptionB异常处理了, 处理的方式是抛出了一个 ExceptionC c = new ExceptionC("exception a"); 自然结果就会是你抛出的新异常
static void f() throws ExceptionB{ //这里会抛出一个异常ExceptionB, 也就是调用这个方法会出现这个异常
throw new ExceptionB("exception b");
}
static void g() throws ExceptionC {
try {
f(); //调用这个方法时出现了异常, 被下面的catch处理了
} catch (ExceptionB e) { //捕获了ExceptionB异常, 下面对其进行了处理
ExceptionC c = new ExceptionC("exception a"); //创建了一个新的异常对象
throw c; //将这个新的异常抛出
}
}
|