iT邦幫忙

2025 iThome 鐵人賽

DAY 23
0
Software Development

來一場軟體開發學習之旅系列 第 23

Day 23:異常處理與錯誤管理(Exception Handling & Error Management)

  • 分享至 

  • xImage
  •  

在軟體開發的世界裡,錯誤並不可怕,真正可怕的是未被處理的錯誤。
當我們寫程式時,總會遇到各種意料之外的情況:檔案不存在、網路中斷、使用者輸入錯誤格式,甚至是我們自己不小心寫錯的邏輯。這些狀況如果沒有妥善處理,整個程式可能會直接崩潰。
因此,今天我們要學習Python的異常處理(Exception Handling),讓程式更加健壯、可維護。

  1. 什麼是異常(Exception)?
    在Python中,異常就是程式執行過程中發生的錯誤事件,會中斷程式的正常流程。
    舉例來說:
    #除以零會發生錯誤
    result = 10 / 0
    print("結果:", result)

執行後會看到:
ZeroDivisionError: division by zero
這是一個異常。如果不處理,程式就會終止。

  1. 使用try-except捕捉異常
    解決方法是使用try-except,讓我們能優雅地處理錯誤。
    try:
    result = 10 / 0
    except ZeroDivisionError:
    print("不能除以零!請檢查數值。")

執行結果:
不能除以零!請檢查數值。
程式不會中斷,還能繼續執行。

  1. 捕捉多種類型的錯誤
    有時我們不知道會遇到哪種錯誤,可以針對不同情況給出不同的反應:
    try:
    num = int(input("請輸入一個整數: "))
    result = 10 / num
    except ValueError:
    print("輸入必須是數字!")
    except ZeroDivisionError:
    print("不能除以零!")

  2. 使用else與finally
    else:如果沒有錯誤,會執行這裡的程式。
    finally:無論是否發生錯誤,都一定會執行。
    try:
    num = int(input("請輸入一個整數: "))
    result = 10 / num
    except (ValueError, ZeroDivisionError) as e:
    print("發生錯誤:", e)
    else:
    print("計算成功,結果為:", result)
    finally:
    print("程式執行完畢。")

  3. 自訂例外(Custom Exceptions)
    有時候我們希望定義自己的錯誤情境,這時可以建立自訂的 Exception:
    class NegativeNumberError(Exception):
    pass

def process_number(num):
if num < 0:
raise NegativeNumberError("不允許輸入負數!")
return num * 2

try:
print(process_number(-5))
except NegativeNumberError as e:
print("自訂錯誤:", e)

  1. 為什麼異常處理很重要?
    提升使用者體驗,程式不會突然崩潰,會提示錯誤訊息。
    提高可靠性,讓系統在意外情況下仍能繼續運行。
    方便除錯,我們能更快定位問題所在。
    必須具備的工程思維,專業的軟體開發不只關心能不能跑,更要確保跑錯時怎麼辦。

學習了Python的異常處理,包括try-except、else、finally與自訂例外。這是邁向專業軟體工程的重要基礎,因為真正健壯的程式,必須能優雅地應對錯誤。


上一篇
Day 22:命名實體識別(Named Entity Recognition, NER)
下一篇
Day 24:檔案處理(File Handling)
系列文
來一場軟體開發學習之旅26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言