Java的finally话语不会被执行的唯一情况

Java的finally语句不会被执行的唯一情况

Java的finally语句不会被执行的唯一情况是:先执行了用于终止程序的System.exit()方法。如下面的代码:

 

public class Test
{
       public static void main(String[] args)
       {
              try
              {
                     System.out.println("Start");
                     System.exit(0);

              }finally
              {
                      System.out.println("Finally");
              }

              System.out.println("End");
       }
}

 

 

输出结果为:Start

 

当然,如果在执行一般的没有System.exit()语句的try语句时,突然断电了,这时所有进程都会终止,也不会执行finally语句。

1 楼 lh870003574 2012-06-26  
呵呵,这应该不是唯一情况吧~~~
考虑多线程,当线程是后台模式时就有可能不执行finally~~
2 楼 lh870003574 2012-06-26  
在不终止VM的情况下,finally中的代码一定会执行。