[英]When should I use the finally-block in Java's try-catch-finally
我何時應該使用代碼段A而不是代碼段B(即使用代碼段A的好處是什么)?:
片段A:
try {
// codeblock A
}
catch (Exception ex) {
// codeblock B
}
finally {
//codeblock C
}
代碼片段B:
try {
// codeblock A
}
catch (Exception ex) {
// codeblock B
}
//codeblock C
如果您有必須執行的代碼,請使用finally塊,無論是否拋出異常。
清理數據庫連接等稀缺資源就是一個很好的例子。
一個明顯的例子是當你在catch
塊中重新引發或拋出另一個異常時。
如果您需要進行一些清理,例如關閉數據庫連接,這很有用。 因為“finally”總是被執行,所以你不需要在“try”結束時以及在一個或多個“catch”塊中進行相同代碼的容易出錯的復制粘貼。
當您在成功或錯誤情況下需要清理資源時,您幾乎總是必須使用finally塊的片段。 一個典型的例子是jdbc連接對象,它應該總是在finally塊中關閉(清理)。
想象一下在catch
塊中有一個return
語句: C塊不會在片段B中執行,但在片段A中它會在返回之前執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.