try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?网上的答案都是
会执行,在return前执行。
我的问题是请问各位高手,这是为什么???????

解决方案 »

  1.   

    没错,只需知道是必须执行,并且在return之前执行就OK了
      

  2.   

    finally里的code永远会执行,且在return之前执行,除非你使用了System.exit()
      

  3.   

    当然会了 
    finally里的code总是先于return之前执行
      

  4.   

    如果没有捕获错误,第一句就是return会是什么结果呢?
      

  5.   

    hehe, 那考考各位, 下面的代码会有什么结果:
    (先别急着实验, 先想想 :)try {
        return 1;
    } catch (Exception e) {
        return 2;
    } finally {
        return 3;
    }
      

  6.   

    这个题目很搞笑啊!按照原理是应该返回 1不过 return 放在 finally 里面是会有警告的除非你用比较低级的编辑器不会,而高级一点的编辑器是会直接报错的至少在 .net里面是无法通过编辑的!
      

  7.   


    finally里的code永远会执行,且在return之前执行,除非你使用了System.exit()或者执行到finally的时候因为断电什么的原因jvm停止了。
    :)
      

  8.   

    try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,
    ====================
    首先执行finally,然后才执行return;
    如果finally里面有return,try中的return不会再执行;
    如果try中有了异常,return也不执行;
    ps:异常实际上也是一种返回值
      

  9.   

    finally语句跟try catch搭配。就是不管是正常结束,捕获异常,还是return,都会执行这个finally块里的语句。
      

  10.   

    try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,
    ====================
    首先执行finally,然后才执行return;
    如果finally里面有return,try中的return不会再执行;
    如果try中有了异常,return也不执行;
    ps:异常实际上也是一种返回值正解!