Python例外處理
處理錯誤的方式非常重要。
Python提供了異常處理功能。
如果將一些代碼放在try:
區塊中:
1 | try: |
如果發生錯誤,Python將會提示您,您可以使用except
區塊來確定發生了哪種錯誤:
1 | try: |
如果要捕獲所有異常,您可以在except
中使用任何錯誤類型:
1 | try: |
如果沒有發生任何異常,則會執行else
區塊:
1 | try: |
finally
區塊可以讓您在任何情況下執行某些操作,無論發生錯誤與否:
1 | try: |
要發生的具體錯誤取決於您正在執行的操作。
例如,如果您正在讀取文件,可能會出現EOFError
。如果您將數字除以零,將會出現ZeroDivisionError
。如果有類型轉換問題,可能會出現TypeError
。
試試這段代碼:
1 | result = 2 / 0 |
程式將以錯誤結束:
1 | Traceback (most recent call last): |
錯誤後的代碼將不會被執行。
將該操作放在try:
區塊中讓我們可以優雅地恢復並繼續執行程式:
1 | try: |
您也可以在自己的程式中引發異常,使用raise
語句:
1 | raise Exception('發生了一個錯誤!') |
這會引發一個一般的異常,您可以通過以下方式攔截它:
1 | try: |
您還可以定義自己的異常類,繼承自Exception:
1 | class DogNotFoundException(Exception): |
這裡的
pass
意味著“空操作”,當我們定義一個沒有方法的類別或沒有代碼的函式時,必須使用它。
1 | try: |
tags: [“exception handling”, “try-except”, “error handling”]