關於finally程式碼塊是否一定被執行的問題
阿新 • • 發佈:2018-11-10
一般來說,只要執行了try語句,finally就會執行
但是,有以下幾種情況需要特殊考慮
具體例子看連結 點選這裡
第一點
try程式碼塊沒有被執行,意思就是錯誤在try程式碼塊之前就發生了。
第二點
1 public class SystemExitAndFinally { 2 3 4 public static void main(String[] args) 5 { 6 7 try{ 8 9 10 System.out.println("in main");11 12 throw new Exception("Exception is thrown in main"); 13 14 //System.exit(0); 15 16 17 } 18 19 catch(Exception e) 20 21 { 22 23 System.out.println(e.getMessage()); 24 25System.exit(0); 26 27 } 28 29 finally 30 31 { 32 33 System.out.println("in finally"); 34 35 } 36 37 } 38 39 40 }
出現了System.exit(0); 一旦出現這個,會退出當前java虛擬機器,程式就停止了。