3
都扔在catch和finally块异常问题:异常抛出终于和catch块
class MyExc1 extends Exception {}
class MyExc2 extends Exception {}
class MyExc3 extends MyExc2 {}
public class C1 {
public static void main(String[] args) throws Exception {
try {
System.out.print(1);
q();
}
catch (Exception i) {
throw new MyExc2();
}
finally {
System.out.print(2);
throw new MyExc1();
}
}
static void q() throws Exception {
try {
throw new MyExc1();
}
catch (Exception y) {
System.out.print(3);
}
finally {
System.out.print(4);
throw new Exception();
}
}
}
我试图执行上面的代码超过一次。它每次给我不同的输出。
output 1: 1Exception in thread "main" 342test.MyExc1
at test.C1.main(C1.java:18)
output 2: 1342Exception in thread "main" test.MyExc1
at test.C1.main(C1.java:18)
output 3: 1Exception in thread "main" test.MyExc1
342 at test.C1.main(C1.java:18)
output4: 1Exception in thread "main" 34test.MyExc1
2 at test.C1.main(C1.java:18)
请解释。