GitHub Copilot 完整教學

Part 12:實戰應用 - 程式碼除錯

用 Copilot 快速找出並修復 Bug

錯誤分析 /fix 修復 /explain 理解

🎯 本單元學習目標

完成這個單元後,你將能夠:

1. 分析錯誤訊息

讓 Copilot 解釋 Traceback 錯誤

2. 使用 /fix 修復

快速修正有問題的程式碼

3. 使用 /explain 理解

先理解程式碼邏輯再除錯

4. 驗證修復結果

確認修正後程式正常執行

核心觀念:除錯 = 找出問題 + 理解原因 + 修正程式碼 + 驗證結果

🐛 除錯的基本概念

1. 發現錯誤
2. 理解原因
3. 修正程式
4. 驗證結果
傳統除錯的痛點:
  • 看不懂錯誤訊息
  • 不知道錯誤發生在哪裡
  • 不確定怎麼修正
  • 修了又產生新的錯誤
Copilot 可以幫你:解釋錯誤訊息、定位問題位置、提供修正建議!

🤖 Copilot 如何幫助除錯?

💬 貼上錯誤訊息

直接把 Traceback 貼到 Chat
Copilot 會解釋錯誤原因

🔧 /fix 指令

選取有問題的程式碼
Copilot 自動修正

📖 /explain 指令

先理解程式碼在做什麼
再找出問題所在

💡 對話詢問

用自然語言描述問題
Copilot 給出解決方案

💬 方法一:貼上錯誤訊息詢問

操作步驟

  1. 執行程式,產生錯誤
  2. 複製終端機的 Traceback 錯誤訊息
  3. 開啟 Copilot Chat(Ctrl + Alt + I
  4. 貼上錯誤訊息並詢問
這個錯誤是什麼意思?要怎麼修復?
貼上錯誤訊息

將錯誤訊息貼到 Chat 並詢問

📋 Copilot 分析錯誤結果

Copilot 分析錯誤

Copilot 解釋錯誤原因並提供修復建議

Copilot 會告訴你:
  • 錯誤類型(如 NameError、TypeError)
  • 錯誤發生的原因
  • 修復建議或修正後的程式碼

🔧 方法二:使用 /fix 修復錯誤

操作步驟

  1. 在編輯器中選取有問題的程式碼
  2. 在 Chat 中輸入 /fix
  3. 按 Enter 送出
使用 /fix

使用 /fix 指令修復錯誤

小提醒:如果遇到「Requested model not available」錯誤,請開一個新的 Chat Session(點擊 ➕ New Chat),重新選取程式碼再試一次。

📖 方法三:使用 /explain 理解程式碼

先理解,再除錯

當你不確定程式碼在做什麼時,先用 /explain 理解邏輯:

  1. 選取要理解的程式碼
  2. 在 Chat 中輸入 /explain
  3. Copilot 會逐步說明程式碼邏輯
使用 /explain

使用 /explain 理解程式碼邏輯

除錯心法:「先理解程式碼在做什麼,才能找出問題在哪裡」

📚 Python 常見錯誤類型

錯誤類型 說明 常見原因
SyntaxError 語法錯誤 缺少冒號、括號不成對、縮排錯誤
NameError 名稱錯誤 變數未定義、拼錯變數名
TypeError 型別錯誤 不同型別做運算、函式參數錯誤
IndexError 索引錯誤 存取超出列表範圍的索引
KeyError 鍵值錯誤 字典中不存在的鍵
小技巧:看到錯誤類型後,可以直接問 Copilot「什麼是 XXXError?」

🔍 實際除錯範例

實際除錯範例

完整的除錯流程示範

除錯流程:
  1. 發現錯誤(執行程式出現 Traceback)
  2. 詢問 Copilot(貼上錯誤或使用 /fix)
  3. 理解原因(Copilot 解釋問題)
  4. 套用修正(使用建議的修正)

✅ 修復後驗證

修復後驗證

修復後執行程式,確認沒有錯誤

驗證重點:
  • 程式正常執行,沒有 Traceback
  • 輸出結果符合預期
  • 沒有產生新的錯誤
注意:修復一個錯誤後,可能會暴露出其他隱藏的錯誤,要多次測試確認!

💡 除錯技巧與心法

1. 閱讀錯誤訊息

錯誤訊息通常會告訴你:
錯誤類型、發生位置、原因

2. 縮小範圍

先確定問題在哪一行
再逐步縮小可能原因

3. 善用 Copilot

/fix 快速修復
/explain 理解邏輯
對話詢問疑問

4. 記錄經驗

遇到的錯誤和解法
下次更快找到答案

黃金法則:「遇到錯誤不要慌,先看訊息再問 Copilot」

🏋️ 實作練習

練習目標:使用 Copilot 的各種除錯功能修復 Bug

練習步驟

  1. 建立 debug_practice.py
  2. 故意寫一些有錯誤的程式碼:
    • 變數未定義(NameError)
    • 字串和數字相加(TypeError)
    • 存取不存在的列表索引(IndexError)
  3. 執行程式,複製錯誤訊息
  4. 使用 Copilot Chat 詢問錯誤原因
  5. 使用 /fix 修復錯誤
  6. 驗證修復結果
進階挑戰:嘗試用 /explain 理解一段複雜的程式碼,找出潛在的邏輯錯誤

📝 隨堂測驗

問題 1:遇到程式錯誤時,Copilot Chat 最快的處理方式是?

A. 自己上網搜尋
B. 把錯誤訊息貼到 Chat 並詢問
C. 重新安裝 VS Code
D. 把程式碼全部刪除重寫

問題 2:在 Copilot Chat 中,哪個指令可以直接修復選取的程式碼?

A. /debug
B. /repair
C. /fix
D. /solve

問題 3:/explain 指令的主要用途是?

A. 執行程式碼
B. 刪除程式碼
C. 理解程式碼的邏輯和功能
D. 壓縮程式碼

✅ 測驗解答

問題 1 答案:B

把錯誤訊息貼到 Copilot Chat 並詢問,是最快的處理方式。Copilot 會解釋錯誤原因並提供修復建議,比自己搜尋更快更準確。

問題 2 答案:C

/fix 是 Copilot Chat 用來修復程式碼的指令。選取有問題的程式碼後輸入 /fix,Copilot 會分析並提供修正建議。

問題 3 答案:C

/explain 的用途是「理解程式碼的邏輯和功能」。當你不確定某段程式碼在做什麼時,可以用這個指令讓 Copilot 逐步解釋。

🎉 Part 12 重點回顧

除錯流程

發現錯誤 → 理解原因
→ 修正程式 → 驗證結果

三種除錯方式

1. 貼上錯誤訊息詢問
2. /fix 快速修復
3. /explain 先理解

常見錯誤類型

SyntaxError、NameError
TypeError、IndexError

除錯心法

不要慌、看訊息
問 Copilot、驗證結果

核心觀念

「錯誤是學習的機會,Copilot 是你的除錯夥伴」

下一單元預告

Part 13:實戰應用 - 程式碼文件
用 Copilot 自動產生程式碼註解和文件!