finally语句块一定会执行吗?
?
按理說finally是一定執行的,但也不排除特例,比如說以下代碼:
public class SystemExitAndFinally {
??? public static void main(String[] args)
??? {
??????? try{
??????????? System.out.println("in main");
??????????? throw new Exception("Exception is thrown in main");
???????????
??????? }
??????? catch(Exception e) ??????? {
??????????? System.out.println(e.getMessage());
??????????? System.exit(0); ??????? }
??????? finally ??????? {
??????????? System.out.println("in finally");
??????? }
??? }
}
?
它的運行結果只有
in main
Exception is thrown in main
我們發現他的finally沒有執行
這是因為?System.exit(status);這個方法是用來結束當前正在運行中的java虛擬機。如何status是非零參數,那么表示是非正常退出。
轉載于:https://www.cnblogs.com/hehejeson/articles/4963925.html
總結
以上是生活随笔為你收集整理的finally语句块一定会执行吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: try、catch、finally的执行
- 下一篇: 2016年第一堂课课后作业1