try...catch...finally 规则:
可以没有 finally 块
如果没有 catch 块, 则必须跟一个 finally 块
当在 try 块或 catch 块中遇到 return 语句时, finally 语句块将在 return 之前被执行.
在以下 4 种特殊情况下, finally 块不会被执行:
在 finally 语句块中发生了异常.
在前面的代码中用了 System.exit() 退出程序.
程序所在的线程死亡.
关闭 CPU.
来源: http://www.bubuko.com/infodetail-2975892.html