使用try-catch-finally構造來檢索數據庫記錄,似乎我需要在try
塊內返回一個值以防萬一(如果函數的結尾不是爲了達到)。但是如果我返回try
,finally
代碼將到達(關閉連接等)?如果`try`或`catch`塊中有`return`,`finally`塊會被執行嗎?
6
A
回答
6
是,
的try/catch
表達式的結果將是本try
或catch
塊的最後一行,但finally
塊總會執行不管是什麼
1
是。
finally
的要點是爲了確保無論代碼使用什麼路徑離開try
塊,都會執行一些清理代碼。它發生在普通返回時,拋出異常並捕獲異常時,以及拋出此異常時未被此try
塊捕獲的異常。唯一會阻止它運行的是如果程序根本無法離開try
塊;它內部有一個無限循環,或者進程被某些阻止這種正常處理髮生的方法所殺死,或者是某種順序。即使您退出try
塊中的進程,在進程實際上死亡之前將會執行finally
塊,我也很確定。
相關問題
- 1. try或catch塊中斷時finally塊不執行
- 2. Java - 如果我返回一個catch塊,finally塊會被執行嗎?
- 3. java中的try-catch-finally塊
- 4. 使用沒有'catch'塊的'try-finally'塊
- 5. Try-catch-finally-return澄清
- 6. 如果catch塊包含continue語句,何時執行finally塊?
- 7. 如果在catch塊中拋出異常,是否會執行finally塊?
- 8. Try try-catch-finally
- 9. 返回try&catch與return in finally?
- 10. 如果catch塊或finally塊有一些異常會發生什麼?
- 11. try/catch塊中的代碼未執行
- 12. 從try塊跳躍finally塊
- 13. GCD @try @catch @finally
- 14. try/finally塊問題
- 15. 是我的try catch塊嗎?
- 16. 在try/catch塊之後使用finally塊vs寫入代碼
- 17. Regex識別包含在.cs文件中的Try-Catch和Try-Catch finally塊
- 18. try catch塊
- 19. try catch塊
- 20. try-catch塊
- 21. try catch塊宏
- 22. 在try catch塊
- 23. 的try/catch塊
- 24. 如何在Java中正確使用try-catch-finally塊?
- 25. catch塊中的異常會被後面的catch塊捕獲嗎?
- 26. 我的try-catch塊有問題嗎?
- 27. 在Java中的try-catch塊中嵌入try-catch塊
- 28. 是否有任何情況下finally塊不會被執行?
- 29. Try-Catch中的變量不可用於其他Try-Catch塊嗎?
- 30. 如果在finally塊之後出現錯誤,是否有辦法處理try-catch-finally中的錯誤?
即使'try'塊中有明確的'return'語句? – Rogach
是的。 [並且這些其他字符適合最小長度] –
'finally'塊不執行的唯一情況是''try'或'catch'塊中調用'sys.exit()'時。 – axel22