关于finally代码块是否一定被执行的问题

时间:2023-04-01 11:53:32

一般来说,只要执行了try语句,finally就会执行

但是,有以下几种情况需要特殊考虑

具体例子看链接  点击这里

第一点

try代码块没有被执行,意思就是错误在try代码块之前就发生了。

第二点

 public class SystemExitAndFinally {

     public static void main(String[] args)
{ try{ System.out.println("in main"); throw new Exception("Exception is thrown in main"); //System.exit(0); } catch(Exception e) { System.out.println(e.getMessage()); System.exit(0); } finally { System.out.println("in finally"); } } }

出现了System.exit(0);          一旦出现这个,会退出当前java虚拟机,程序就停止了。