class Demo {
public static void main(String args[]) {
System.out.println("Start main");
try {
//exceptional code
int x=43/0;
} catch(ArithmeticException e) {
e.printStackTrace();
} finally {
System.out.println("final code");
}
System.out.println("End main");
}
}
我使用上面的代碼來了解finally
塊的機制。在這種情況下,我觀察到即使沒有該catch塊,finally塊也會執行並顯示發生異常。但我觀察到的差異是,當不使用catch塊時,不會打印「End main」。我想知道finally代碼塊執行的原因,即使異常不是通過使用catch子句來處理的。我想知道一個finally塊的基本功能是什麼。「finally」塊的功能是什麼?
因爲這就是它設計的目的。無論是否引發'Exception',都會保證調用'finally'塊。看看[The finally block](http://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html)瞭解更多詳情 – MadProgrammer
@ MadProgrammer-是它的一個很好的提示......我認爲它是機制,我想確保我在想什麼真的很幸福。 – Vbabey
我會用它來清理在該函數中使用的系統資源,如文件關閉,數據庫連接關閉等,所以無論您的程序結束,正常還是異常,資源都將被釋放。 – Adi