本文介紹了如果我在命令行中輸入CTRL-C,Java語言中的最后一個擋路還會執行嗎?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我在Windows的cmd.exe
中運行我的Java應用程序。如果我按Ctrl-C組合鍵強制停止進程,而當時的代碼正在try
擋路中運行,finally
擋路還會執行嗎?
在我的測試中,它似乎是被執行的。
推薦答案
而您的最終代碼可能已在您的Windows機上執行(我無法用linux重現它),根據this documentation on finally:
注意:如果JVM在嘗試時退出
或者正在執行捕獲代碼,則
最后的擋路可能不會執行。
同樣,如果執行
嘗試或捕獲代碼被中斷或
殺了,最后的擋路可能不會
即使應用程序作為
整個過程仍在繼續。
因此,即使用戶試圖過早退出,我也不會使用Finally擋路來確保代碼執行。如果需要,可以使用Adrian Petrescu提到的Shutdown Hooks
這篇關于如果我在命令行中輸入CTRL-C,Java語言中的最后一個擋路還會執行嗎?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,