Python入門-Day9:例外處理

閱讀時間約 3 分鐘

為什麼要使用「例外處理」

例外處理是一種處理程序中發生的異常情況的方法。當在程序中發生錯誤時,例外處理是一種把控制權從程序的一部分轉移到另一部分的過程。它是一種錯誤處理的方法,用於處理程序可能會遇到的問題,以避免程序崩潰或產生不可預期的結果。

例外處理的重要性在於,它可以幫助我們確定程序中發生錯誤的位置並採取適當的行動。此外,它還可以提供有關錯誤的詳細信息,使我們能夠更好地理解錯誤的原因。最後,例外處理還可以保護我們的程序,防止因錯誤而導致的程序中斷或數據損失。

語法

錯誤處理的語法如下:

try:
# 可能會引發錯誤的代碼
except 错误类型1:
# 如果引發错误类型1,執行的代碼
except 错误类型2:
# 如果引發错误类型2,執行的代碼
else:
# 如果沒有引發任何錯誤,執行的代碼
finally:
# 不管是否引發錯誤,都執行的代碼

案例

以下是一個錯誤處理的案例,用於處理除以零的錯誤:

try:
num1 = 10
num2 = 0
result = num1 / num2
print(result)
except ZeroDivisionError:
print("除以零錯誤")

在上面的案例中,如果 num2 的值為零,就會引發 ZeroDivisionError 錯誤。當出現這種錯誤時,程序會執行 except 語句中的代碼,並打印出 "除以零錯誤"。

主動觸發異常訊息

以下是一個主動觸發異常的案例,用於測試錯誤處理:

try:
raise Exception("這是一個異常")
except Exception as e:
print(e)

在上面的案例中,raise Exception 會主動觸發一個異常,並帶有一個自定義的錯誤訊息 "這是一個異常"。當出現這種異常時,程序會執行 except 語句中的代碼,並打印出錯誤訊息。

主動觸發用戶自定義異常訊息

以下是一個主動觸發用戶自定義異常的案例:

class MyError(Exception):
def __init__(self, message):
self.message = message

try:
raise MyError("這是一個自定義異常")
except MyError as e:
print(e.message)

在上面的案例中,我們定義了一個 MyError 類別,它繼承自 Exception。這個類別有一個 message 屬性,用於存儲錯誤訊息。在 try 語句中,我們使用 raise 關鍵字主動觸發這個自定義異常,並帶有一個自定義的錯誤訊息 "這是一個自定義異常"。當出現這種異常時,程序會執行 except 語句中的代碼,並打印出錯誤訊息。

補充

以下是 Python 的一些標準異常名稱:

  • Exception:所有異常類的基類
  • AttributeError:當對象沒有這個屬性時引發異常
  • FileNotFoundError:當檔案或目錄不存在時引發異常
  • IndexError:當序列中沒有這樣索引的元素時引發異常
  • KeyError:當字典中沒有這樣的鍵時引發異常
  • TypeError:當對象類型不適用於所執行的操作時引發異常
  • ValueError:當對象類型正確但值不合適時引發異常
  • ZeroDivisionError:當除數為零時引發異常
  • IndentationError:當縮排錯誤時引發異常
  • SyntaxError:當語法錯誤時引發異常
  • NameError:當變數名稱不存在時引發異常
    4會員
    25內容數
    日後將分享關於我的經驗(日常、工作、技術),並期待未來能創造屬於我的宇宙。
    留言0
    查看全部
    發表第一個留言支持創作者!