2011-10-19 86 views

回答

6

是,

try/catch表達式的結果將是本trycatch塊的最後一行,但finally塊總會執行不管是什麼

+0

即使'try'塊中有明確的'return'語句? – Rogach

+2

是的。 [並且這些其他字符適合最小長度] –

+2

'finally'塊不執行的唯一情況是''try'或'catch'塊中調用'sys.exit()'時。 – axel22

1

是。

finally的要點是爲了確保無論代碼使用什麼路徑離開try塊,都會執行一些清理代碼。它發生在普通返回時,拋出異常並捕獲異常時,以及拋出此異常時未被此try塊捕獲的異常。唯一會阻止它運行的是如果程序根本無法離開try塊;它內部有一個無限循環,或者進程被某些阻止這種正常處理髮生的方法所殺死,或者是某種順序。即使您退出try塊中的進程,在進程實際上死亡之前將會執行finally塊,我也很確定。