iT邦幫忙

2026 iThome 鐵人賽

DAY 23
0
佛心分享-IT 人自學之術

當 Python 初學者遇到 AI:30 天人機協作學習手記系列 第 23 篇

[Day 23] 專案實戰前哨戰:讓程式擁有不死之身!Try-Except 錯誤處理機制

  • 分享至 

  • xImage
  •  

今日對話:如何阻止程式崩潰當機?

我的 Prompt(提示詞):

「我的程式只要使用者亂輸入文字,或是遇到網路斷線,就會直接顯示一堆紅色的 Error 然後當機關閉。請教我如何用 Python 的 try-except 來攔截這些錯誤?請用白話文解釋它的原理,並給我一個簡單的實作範例。」

AI 導師的建議與拆解

AI 導師給了一個非常有安全感的比喻:「try-except 就像是給你的程式穿上一件防彈衣,或是高空彈跳的安全網。」

它的核心結構分為兩個區塊:

  1. try (嘗試執行):
    把「可能會有風險、可能會出錯」的程式碼放進這個區塊。程式會『試著』去執行看看。
  2. except (發生例外時的處置):
    如果 try 裡面的程式真的出錯了,Python 不會直接當機,而是會立刻跳到 except區塊裡面,執行你準備好的「備案」或「錯誤提示」。

常見的錯誤類型 (Error Types):
ValueError:值錯誤(例如:要把 "蘋果" 轉換成整數數字)。
ZeroDivisionError:除以零錯誤(數學上不能除以 0)。
FileNotFoundError:找不到檔案錯誤。
Exception:所有錯誤的老大。如果不確定會發生什麼錯,抓它就對了!

實作筆記與驗證

我在 VS Code 裡建立 day23.py,寫了一個「披薩分片計算機」。這次我故意不乖乖輸入數字,來測試看看防護網有沒有生效:

python
print("--- 🍕 披薩分片計算機 ---")

#把可能有風險的程式碼放進 try 區塊
try:
total_slices = int(input("請輸入披薩總共有幾片 (請填數字):"))
people = int(input("請輸入有幾個人要吃 (請填數字):"))

#計算每人可以吃幾片
slices_per_person = total_slices / people
print(f"\n✅ 計算成功!每個人可以吃到 {slices_per_person} 片披薩。")

#如果使用者輸入了文字 (無法轉成 int)
except ValueError:
print("\n❌ 錯誤警告:請輸入『阿拉伯數字』啦!不能輸入中文字或英文字母。")

#如果使用者輸入人數為 0 (除以 0 會報錯)
except ZeroDivisionError:
print("\n❌ 錯誤警告:人數不能是 0!難道披薩要餵給空氣吃嗎?")

#攔截其他所有意料之外的錯誤 (終極安全網)
except Exception as e:
print(f"\n❌ 發生了未知的錯誤:{e}")

print("-" * 30)
print("🏁 程式順利執行完畢,沒有閃退!")

今日小結

今天學會了如何用 try-except 幫程式建立安全網。


上一篇
[Day 22] 進階最終戰:將資料化零為整!Pandas 數據處理基礎與匯出 CSV
下一篇
[Day 24] 自動化微專案實戰 :結合 API 與防錯機制,打造即時天氣查詢小助理
系列文
當 Python 初學者遇到 AI:30 天人機協作學習手記 共 25 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言