2
我已經閱讀了很多關於調試try,exception,finally
的資源。我明白,當我們嘗試一些代碼時,可能會有一些例外。但我不明白爲什麼有時候我們最終會使用,當我們已經有異常?爲什麼有時候最後會被用於調試?
我已經閱讀了很多關於調試try,exception,finally
的資源。我明白,當我們嘗試一些代碼時,可能會有一些例外。但我不明白爲什麼有時候我們最終會使用,當我們已經有異常?爲什麼有時候最後會被用於調試?
如documentation所示,finally
子句對釋放外部資源非常有用,無論使用是否成功。這些外部資源可以是文件或網絡連接,在任何情況下都需要進行清理。
例如:
try:
f = open("testfile", "w")
try:
f.write("This may not work!")
finally:
f.close()
except IOError:
print("Error! Can't find file")
f.close()
會一直執行的語句,所以即使寫入操作拋出一個異常,該文件將始終在結束時關閉。
終於'**總是**執行。有時候'exception'後面的代碼可能不會被執行。(想想* exception中的異常被拋出的情況) – Maroun