iT邦幫忙

2026 iThome 鐵人賽

DAY 27
0

在這次使用 Claude Code 打造圖書管理系統的 30 天挑戰中,AI 扮演了副駕駛的角色,幫我加速生成與除錯,但是 AI 不是真人,在開發過程中也曾經翻過車。

如果把 AI 當成百分之百正確,往往會在關鍵時刻踩大坑。今天想把這段時間與 Claude 合作時,它最常犯的錯誤整理,並分享我是怎麼修正它的。

一、 AI 常見的翻車類型

1. 給出缺少防呆與邊界條件的程式碼

  • 情境:當請 Claude 寫一個表單處理或資料新增功能時,它預設只會給出最核心的 INSERT INTO 邏輯,完全沒有處理空值驗證與例外捕捉。
  • 重新下 Prompt:

    請重構這段程式碼,要求包含以下三點:

    1. 加入 Try-Catch 例外處理(捕捉 PDOException)。
    2. 加入前端/後端雙重輸入驗證(如 POST 欄位檢查與三元運算子防呆)。
    3. 發生錯誤時必須回傳清晰的 JSON 錯誤訊息,而不是讓系統崩潰。

2. 寫出不符合 WSL2/Ubuntu 的指令

  • 情境:Claude 有時會給出 systemctl start apache2 這種在某些 WSL2 Ubuntu 預設環境下不支援的指令,或是忽略了的權限問題。
  • 重新下的 Prompt:

    我的開發環境是 WSL2 (Ubuntu 22.04),Web 伺服器是 Apache,請確保你給的所有 Bash 指令都符合 WSL2 的權限機制(例如使用 sudo service 而非 systemctl),並提示需要提權(sudo)的步驟。

3. 局部修改引發連鎖崩潰

  • 為了修復某個小錯誤,請 Claude 修改函式,結果它順手把原本的傳參格式改了,導致其他呼叫這個函式的頁面全部報錯。
  • 重新下的 Prompt:

    請幫我修改 borrowBook() 這個函式以修復日期計算 Bug。
    【注意】:請只修改函式內部的邏輯,嚴禁改動函式的名稱、傳入參數以及回傳值格式,避免破壞其他頁面的呼叫。

二、 如何把報錯丟給 AI

當程式碼跳出 Error 時,直接將終端機或瀏覽器的完整錯誤貼給 Claude:

[Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row]

請幫我分析:
1. 這個 SQL 錯誤的核心原因是什麼?
2. 這是哪一個欄位的外鍵約束出了問題?
3. 請給我修改後的完整程式碼與防呆建議。

今天整理了與 Claude Code 協同開發時遇到的錯誤,並給出了具體的 Prompt 與除錯指令。透過精準指示與正確的除錯反饋,可以降低 AI 的翻車機率,將其轉化為真正高效、穩定的開發副駕駛。


上一篇
Day 26 看不懂 AI 寫的 Code 怎麼辦?
下一篇
Day 28 我的查證流程
系列文
從零打造圖書管理系統:WSL2 × MySQL × Claude Code 的整合實作 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言