给出下面的代码:
输出,会是什么呢?
thrown 2
thrown 3
还是
thrown 2
答案是第二种情况,为什么呢?
因为异常没有被捕获,也就是在try catch块中没有被消化,这样的话会向向上一级提交异常,所以不会执行到thrown 3来了,我的理解对不对呢?
package scjp; public class Demo248 { public static void main(String[] args) { try{ throw new ExceptionInInitializerError(); }catch(NullPointerException e) { System.out.println("thrown 1"); }finally { System.out.println("thrown 2"); } System.out.println("thrown 3"); } }
输出,会是什么呢?
thrown 2
thrown 3
还是
thrown 2
答案是第二种情况,为什么呢?
因为异常没有被捕获,也就是在try catch块中没有被消化,这样的话会向向上一级提交异常,所以不会执行到thrown 3来了,我的理解对不对呢?