finally会执行吗

来源:互联网 发布:知乎推荐的淘宝包店 编辑:程序博客网 时间:2024/05/02 02:16

   如下代码,finally里的代码是否会执行?

public class MainQueue {public static void main(String args[]) {System.out.println(MainQueue.test());}public static int test() {try {return 0;} finally {System.out.println("finally trumps return.");}}}
    答案是会执行,而且是先执行finally里的代码,然后再返回return语句!但是,有两种情况下finally是不会执行的

(1)调用了System.exit()。

(2)JVM在finally之前就挂了,注意是JVM挂了,而不是指程序异常,比如即使在finally之前有空指针异常,finally里的代码依然会执行的。


  (此处插个题外话,在JDK1.7及其之后的版本的switch语句都支持String case语句了,其以前的都只能用int很肯爹有木有!)

0 0
原创粉丝点击