java finally的问题

有次笔试的时候遇到finally的考题,例如

public static int test(){
  
        int a = 0;
        try {
            throw new Exception();
        } catch (Exception e) {
            a = 1;
            return a;
        } finally{
              a = 2;
            return a;
            
        }
   
}

  调用这个静态test()方法,返回a的值是什么呢?结果是2,虽然catch块里面已经执行了return , 但是还没有将值返回给调用test方法的使用者,要最后通过finally块,

在finally块里的return 才是最后返回的值(若有return处在),copy代码到ide然后debug就知道大概的原理

posted on 2012-10-29 10:11  zxq19891211  阅读(72)  评论(0)    收藏  举报

导航