p.9方法⏱ 约 4 分钟
陷阱 #9:偷工减料(只写 happy path)
只管"一切顺利",不管"万一出错"
🔎 最后验证 2026-05📚 来源:《AI编程实战三卷书》卷二 §8–12🧰 Claude Code✅ 88 人学过👁 141 次阅读
为什么学这个
AI 的代码常给人一种"完成了"的错觉:演示一走,功能正常。但它往往只实现了"一切顺利"的主流程,把"网络断了怎么办、没数据怎么显示、请求失败怎么提示"全跳过了。这叫只写 happy path——真实世界里,意外才是常态。
💡 打个比方
就像开了家餐厅,只准备了"顾客点了就有"的情况,却没想过"菜卖完了""顾客退单""刷卡失败"。平时风平浪静,一遇意外就手忙脚乱、当场翻车。
这个坑长什么样
// 只写了成功的情况(❌)
async function loadUser() {
const res = await fetch("/api/user");
const data = await res.json();
show(data.name); // 没考虑:请求失败?返回空?网络超时?加载中显示什么?
}
为什么会犯 & 怎么识别
- 为什么:主流程最能"演示成功",AI 优先把它跑通就交差
- 识别信号:没有失败分支、没有加载状态、没有"空数据"的显示、没有
try/catch
⚠️ 一个隐蔽点:
fetch在服务器返回 404/500 时并不会自动报错(只有网络层断了才会)。所以光加个try/catch还不够,还要检查res.ok(或状态码),否则"服务器出错"这种最常见的失败照样被你漏掉。
怎么防
- 主动问"万一……怎么办":失败、为空、加载中、超时、没权限——每个都要有交代
- 提示里点名要求:"请处理失败、空数据、加载中三种状态,而不只是成功路径"
- 用三种输入测它(呼应 m.8):正常的、空的、出错的
❓ 测验
AI 写的功能'演示能跑',你最该补问的是?
⚠️ 避坑happy path 的坑,平时不暴露,上线才爆
只写主流程的代码,在你自己测试(都输正确数据)时一切正常,一上线遇到真实用户的各种意外输入和网络状况就集中爆发。所以别用"我试了没问题"当验收标准——你试的恰好是 happy path。
🤖 逼 AI 补齐异常路径(收藏)
这个功能除了正常情况,请补齐所有'不顺利'的处理:请求失败、返回空数据、加载中、超时、无权限。每种都要有合理的用户反馈或兜底,不要只写成功路径。改完列出你处理了哪些异常情况。
🔎 来源与核验· 1 条,点开核对
本节每个关键论断都对应一个可追溯的来源 —— 这是本课程"靠谱、不过时"的底线。
「AI 常只实现主流程而忽略错误/空/加载等分支,需主动补齐异常路径」
📚 《AI 编程实战三卷书》卷二 §8–12✓ 已核验 2026-05
🔧 试一试:给它制造异常情况(5 分钟)
让 AI 写个有外部依赖的函数(读文件、调网络),然后模拟异常:文件不存在、网络断、格式不对。
你会看到:它写的往往只有「一切顺利」那条路,异常一来就崩。
怎么防:要求它把失败路径也处理了;主动问「如果 X 失败会怎样」。
✅ 小结
你会逼它补齐异常路径了。接下来一类坑和"环境"有关——下一节:它用的写法和你的版本对不上。
下一节 → 陷阱 #10:版本与依赖不匹配

都看到这了,打个赏呗!
接下来 · p.10
陷阱 #10:版本与依赖不匹配
继续读下一节 →