Try/Except/finally
Error
我們來看看以下的範例:
如果我們輸入正確的數字,當然會進行正確的除法計算,但是如果我們使用的除數是0,那會發生什麼事呢?
我們會看到:
Traceback (most recent call last): File "", line 6, in File "", line 2, in dividedBy ZeroDivisionError: division by zero
ZeroDivisionError就是一個python直譯器直接報錯誤(Error)的方式。
例外處理
如果我們想要在程式中處理錯誤,那麼我們要使用例外處理。 我們來看看修改後的範例:
然後再試著執行看看。
finally
我們可能會有機會在不管例外是否有發生,都希望執行某些程式,這時可以使用finally子句, 也就是說,不管程式有無進入except子句,最終都會執行finally子句的程式。
我們來看看修改後的範例:
我們可以發現,不論你a, b輸入什麼,finally子句都會執行。 另外,except子句可以不接任何的Error在後面,此時代表只要有Error發生,就會執行except子句。
raise an exception
我們來看看以下的範例:
我們可以使用raise敘述句來丟出例外,也就是如果沒有except子句將其接住,則整個程式就會直接結束, 並且以"Only string type is allowed"為說明訊息告知使用者, 這個方式,對於要將程式給予其他的開發者而言,是對其他開發者的一種有利除錯的訊息常規。 以上這個程式,如果執行的話,我們會看到:
Traceback (most recent call last): File "", line 4, in Exception: Only string type is allowed
Last updated
Was this helpful?