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