更新於 2024/05/16閱讀時間約 3 分鐘

Python入門-Day9:例外處理

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

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

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

    語法

    錯誤處理的語法如下:

    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:當變數名稱不存在時引發異常
    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.