Python入門-Day9:例外處理

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:當變數名稱不存在時引發異常
avatar-img
Michael楊
17會員
111內容數
日後將分享關於我的經驗(日常、工作、技術),並期待未來能創造屬於我的宇宙。
留言
avatar-img
留言分享你的想法!
Michael楊 的其他內容
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用Python進行物件導向程式設計至關重要。
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。
Python的模組和庫是可重用的程式碼塊,可透過import語句引入。特定部分可以透過from和import引入,並可使用as指定別名。第三方模組可透過pip工具安裝並在程式碼中使用。此外,也可以創建自定義模組並在其他Python文件中引用。
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用Python進行物件導向程式設計至關重要。
在Python中,我們可以用def關鍵字定義函數,並透過函數名稱呼叫它。函數參數可以是必填、關鍵字、默認或不定長度的類型。return語句負責結束函數並回傳值。全域變數可以在整個程序中使用,而區域變數只能在特定函數內使用。我們還可以在一個文件中定義函數,然後在另一個文件中呼叫它。