出错了怎么办
前面几篇,你学会了提需求、看代码、验收结果。但有一个情况你 100% 会遇到,而且很容易让人崩溃——报错。
屏幕上跳出一大堆红色的英文,你一个字都看不懂。这时候别慌,这篇就是教你怎么和报错打交道。
先认清一个事实:报错是常态
很多新手觉得"报错 = 我太笨 = 我不适合学编程"。这是天大的误解。
真相是:所有程序员,包括最厉害的高手,每天都在和报错打交道。 写代码的过程,本质就是"写出错 → 修好 → 又出错 → 又修好"的循环。AI 帮你写也一样,它也会写错。
所以遇到报错的第一步,不是怀疑自己,而是告诉自己:"正常,下一步是修它。"
报错长什么样
先别被一大堆红字吓到。任何报错,本质上都告诉你三件事:
1. 在哪一行出错(位置)
2. 出了什么错(类型)
3. 为什么出错(原因,有时给)
你不需要看懂所有英文,只要能找到这三个信息就行。看一个真实例子:
TypeError: Cannot read properties of undefined (reading 'map')
at TodoList (app/todos/page.tsx:12:15)
拆开看:
- 出了什么错:
TypeError(类型错误) - 具体什么问题:
Cannot read properties of undefined (reading 'map')——某个东西是 undefined,却对它用了.map - 在哪一行:
app/todos/page.tsx第 12 行第 15 列
哪怕你不懂英文,把这些原样复制给 AI,它也能精准告诉你怎么回事。
修错的标准流程
遇到报错,按这个流程走,几乎能解决所有问题:
第一步:别动,先复制完整报错
最常见的错误:看到报错就慌,要么瞎改代码,要么只截一段给 AI。
正确做法:把完整的报错信息复制下来,包括:
- 红字内容
- 报错下面的几行(叫"调用栈",标了出错位置)
- 浏览器或终端里前后相关的信息
复制得越全,AI 判断越准。
第二步:连同相关代码一起给 AI
光给报错还不够,AI 还需要看"出错的代码"。给它两样:
- 报错信息(完整复制)
- 报错提到的那个文件的相关代码(特别是出错的那一行附近)
提问模板:
我这段代码报错了:
报错信息:(粘贴完整报错)
相关代码:(粘贴
app/todos/page.tsx第 12 行附近的代码)请告诉我为什么报错、怎么修。
第三步:让 AI 解释 + 给方案
AI 一般会给你两样东西:
- 为什么会错(解释原因)
- 怎么改(给修改方案)
这时候用上上一篇的"验收"能力:
- 看它说的原因,是否合理
- 按它说的改,跑一遍看还报不报错
第四步:改了还不对?给更多上下文
有时候改一次还没好,可能是因为 AI 缺信息。这时给它更多:
- "我已经按你说的改了,现在报的是这个错:(新报错)"
- "这是相关的另一个文件:(贴
db.ts的代码)" - "这是我的项目结构:(说明用了什么技术、什么版本)"
信息越全,AI 越准。反复几次,几乎所有问题都能解决。
一个真实的排错案例
我们完整走一遍。假设你做了个待办清单,跑起来报这个错:
TypeError: Cannot read properties of undefined (reading 'map')atTodoList
第一步:复制报错,包括 at TodoList (app/todos/page.tsx:12)。
第二步:贴代码给 AI:
我的待办清单报错了,完整报错: TypeError: Cannot read properties of undefined (reading 'map') at TodoList (app/todos/page.tsx:12)
相关代码(第 10-15 行):
{todos.map((t) => ( <li key={t.id}>{t.text}</li> ))}为什么报错?怎么修?
第三步:AI 解释 + 方案:
原因:
todos是 undefined(没值),对 undefined 用.map就会报这个错。 你需要确保todos有个默认的空数组。 修复:把const todos = data.todos改成const todos = data.todos ?? []。
第四步:按它说的改,跑一遍。好了。
整个过程你不用懂 .map 是什么、不用懂 ?? 怎么用——你只要会"复制报错 + 贴代码 + 按建议改 + 跑验证"。
避免反复改不好:三个心法
有时候 AI 改一次、报一次,越改越乱。这时候记住三个心法:
心法一:小步验证
不要一次性让 AI 改 5 个地方然后跑——出错了不知道是哪个改动的锅。改一点,跑一下,确认没问题再改下一点。
心法二:给够上下文
AI 反复改不好,多半是信息不够。主动提供:
- 项目用什么框架、什么版本
- 相关的其他文件
- 你最近做了什么改动
- 你想要的整体效果
心法三:实在改不好,退回去
如果一段代码怎么改都不对,最务实的做法是:让 AI 重写这一段。
"这段代码我改了好几次还有问题,能不能换个思路重新实现这个功能?"
退一步海阔天空。AI 不会嫌烦,让它重写比死磕一个烂摊子高效得多。
别害怕报错
最后说一句心态上的话:报错是你最好的老师。
每一次报错、每一次修复,你都在积累经验。哪怕你不懂原理,多经历几次"出错→问 AI→修好"的循环,你也会慢慢建立起对代码的感觉。
高手不是不犯错,而是修得快。而你有了 AI 这个"24 小时家教",修复速度比传统学编程的人快十倍。
本篇小结
- 报错是编程的常态,不是你笨
- 任何报错都包含三个信息:在哪、什么错、为什么
- 修错标准流程:复制完整报错 → 连同相关代码给 AI → 按 AI 建议改 → 跑验证
- 改不好时:小步验证、给够上下文、不行就让 AI 重写
- 每次报错都是学习机会,多经历几次就有感觉了
第 2 章总结
到这里,第 2 章就结束了。回顾一下你获得的"AI 编程能力包":
- 认识 Agent:知道 Agent 能动手干活,不只是动嘴
- 选对工具:了解 Cursor、ZCode 等主流工具的特点
- 会提需求:掌握四要素(目标/背景/约束/期望)和万能模板
- 会看代码:三层法看懂 + 跑起来验收
- 会修错:标准排错流程 + 三个心法
这套能力,是你接下来 14 章全程要用的"基本功"。下一章开始,我们就要正式进入开发——从搭建你的开发环境、创建第一个 Next.js 项目开始。带上你刚学会的"指挥 AI"的本领,我们开工。
💬 评论(0)
请登录后参与评论
加载中...