public class Test {
public static void main(String args[]) throws Exception{
try{
System.out.print("1");
throw new Exception("first");
}
catch (Exception e) {
System.out.print("2");
throw new Exception("second");
}
**finally**{
System.out.print("3");
try{
System.out.print("4");
}catch (Exception e) {
System.out.print("5");
throw new Exception("third");
}
finally{
System.out.print("6 ");
}
}
}
}
首次运行时输出:
12Exception in thread "main" 346 java.lang.Exception: second
at src.dec.TST501.main(TST501.java:11)
第二次运行的输出:
12346 Exception in thread "main" java.lang.Exception: second
at src.dec.TST501.main(TST501.java:11)
第三次运行时输出:线程“main”中的 1Exception java.lang.Exception:src.dec.TST501.main(TST501.java:11) 处的第二个 2346
谁能解释一下它是怎么发生的?finally 块是否将在除 main 之外的任何其他线程中执行?