Python例外處理 – Let’s go!
語法 | |
try: [1tryStatements ] [Exit Try ] except: [exceptStatements ] finally: –RUN ALWAYS End Try | try: 為測試程式碼是否有Bug的區塊. catch: 為在try區塊出現Bug後執行的區塊. 在這區塊處理錯誤 finally: 為最後必定會執行的區塊. 如果所有程式碼在try區塊沒有錯誤, 就會行至Finally的區塊. 如果所有程式碼在try區塊有錯誤, 就會行至Catch的區塊, 再 行至Finally的區塊. |
例子一 | |
try: a = 1000000; b = 2000000; z = a * b; except: print(“error”); finally: print(“Executed”); | 流程: 1) 執行try區塊 2) a * b 的結果大於int 數值範圍, 出現 Exception 3) 執行Exception區塊 4) 執行Finally區塊 5) 繼續後面的程式 注意事項: 1) 程式即使在try區塊出現錯鋘, 執行Exception, Finally區塊後, 還可繼程式運行. 這可能是一個問題, 因為有些程式是流水式 的, 不能錯過其中的一節, 一部份的錯誤讓它繼續執行可產生 整體計算的問題. 2) 在Production Stage時, 在try區塊出現錯鋘, Programmer, User 未必能立即看到, 而錯誤讓它繼續執行可令問題不能得到即 時解決而累積下去. 例如在計算後相關的Database數據. |
例子二 | |
try: a = 1000000; b = 2000000; z = a * b; except: console.error(e); throw; finally: print(“Executed”); | 流程: 1) 執行try區塊 2) a * b 的結果大於int 數值範圍, 出現 Exception 3) 執行Exception區塊 4) throw exception 5) App掛掉, 不能繼續後面的程式 |