Skip to content

例外處理

什麼是例外處理?

在 Python 中,例外處理 是用來捕捉和處理程式執行時可能發生的錯誤(例外狀況)。透過例外處理,程式可以在遇到錯誤時進行適當的處理,而不會直接崩潰。

初學者建議

💡初學者只須了解底下概略的基本語法,即可大大改善程式品質!

try:
    程式區塊
except Exception as e:
    例外處理程式區塊

例外處理的使用方式

1. 使用 try-except 語法

try 區塊用來包裹可能會產生例外的程式碼,而 except 區塊用來處理發生的例外。

try:
    # 可能會發生例外的程式碼
except ExceptionType:
    # 例外處理的程式碼

範例

try:
    x = 10 / 0  # 這裡會產生 ZeroDivisionError
except ZeroDivisionError:
    print("不能除以 0")

2. 捕捉多種類型的例外

可以使用多個 except 區塊來捕捉不同類型的例外。

try:
    x = int("abc")  # 這裡會產生 ValueError
except ValueError:
    print("值錯誤,無法轉換為整數")
except ZeroDivisionError:
    print("不能除以 0")

3. 使用 finally 區塊

finally 區塊中的程式碼無論是否發生例外,都會執行,常用來釋放資源或進行收尾工作。

try:
    x = 10 / 2
except ZeroDivisionError:
    print("不能除以 0")
finally:
    print("這裡的程式碼總是會執行")

4. 自訂例外

可以使用 raise 關鍵字來手動引發例外,並自訂例外訊息。

def check_age(age):
    if age < 0:
        raise ValueError("年齡不能是負數")
    else:
        print(f"年齡是 {age}")

try:
    check_age(-1)
except ValueError as e:
    print(e)

5. else 區塊

else 區塊中的程式碼在 try 區塊中沒有發生任何例外時執行。

try:
    x = 10 / 2
except ZeroDivisionError:
    print("不能除以 0")
else:
    print("計算成功,結果是", x)

總結

例外處理是 Python 中一個重要的功能,讓程式可以在遇到錯誤時有適當的處理方式,而不會崩潰。try-except 結構允許捕捉並處理不同的錯誤類型,並且可以搭配 finallyelse 來更靈活地管理程式流程。