调用者aaaaaa
捕获到的异常,可以在当前方法的 catch 块中处理,也可抛出给调用者去处理D错误,调用者是谁啊?
捕获到的异常,可以在当前方法的 catch 块中处理,也可抛出给调用者去处理D错误,调用者是谁啊?
2016-04-19
以下面这个程序为例,(老师讲的那个),比如test1( ),它被test2( )调用,它抛出的异常给test2()处理,test1( )的调用者是test2( ),你看test2()怎么处理的,当然是test2( )中的try-catch块处理,它把test1()抛出的异常又封装成了一个新的的异常。在比如test2(),它在被主函数调用时发生了异常,但是它产生的异常没有被抛出,而是直接被main函数里的try-catch捕获了,它的调用者是main。
public class ExceptionDemo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ExceptionDemo2 demo = new ExceptionDemo2();
try {
demo.test2();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void test1() throws FatException {
throw new FatException("开车别喝酒");
}
public void test2() {
try {
test1();
} catch (FatException e) {
RuntimeException runt = new RuntimeException("本代码敲于2018年12月23日");
//RuntimeException runt = new RuntimeException("本代码敲于2018年12月23日");
runt.initCause(e);
// TODO Auto-generated catch block
throw runt;
}
}
}
举报