finally語句塊必定執行嗎?
答案是不必定。.net
直接返回未執行到finally語句塊 拋出異常未執行到finally語句塊 系統退出未執行到finally語句塊
...code
存在不少特殊狀況致使finally語句塊不執行。blog
代碼以下get
public static String test() { String str = null; int i = 0; if (i == 0) { return str;//直接返回未執行到finally語句塊 } try { System.out.println("try..."); return str; } finally { System.out.println("finally..."); } } public static String test2() { String str = null; int i = 0; i = i / 0;//拋出異常未執行到finally語句塊 try { System.out.println("try..."); return str; } finally { System.out.println("finally..."); } } public static String test3() { String str = null; try { System.out.println("try..."); System.exit(0);//系統退出未執行到finally語句塊 return str; } finally { System.out.println("finally..."); } }
————————————————
版權聲明:本文爲CSDN博主「ConstXiong」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/meism5/...it