模块 4 · 第 6

报错信息是破案线索,不是失败宣告

是什么

代码报错不代表你做错了什么,它只是计算机在告诉你"这里有个问题我不知道怎么处理"。学会把报错当作线索来阅读,而不是当作失败来恐惧。

解决什么问题

如果把报错信息当作"我又搞砸了"的信号而不去阅读它,你就失去了最直接的排错指引。更糟的是,如果只是让 AI 反复修改却不理解报错的含义,你无法判断 AI 是真的修好了问题还是只是绕过了症状。

它在向你求助,不是在批评你

当屏幕上突然冒出一片红色的文字,你的第一反应可能是:"完了,我又搞砸了。"

这种反应很自然,但它建立在一个误解之上。报错信息不是计算机对你的批评,它更像是你的汽车仪表盘上亮起的警告灯——它在说:"这里有个状况,我把我知道的信息都告诉你了,请你来处理。"

一旦你这样看待报错,它就从一个令人恐惧的东西变成了一个有用的东西。

一条报错信息里有什么

报错信息看起来可能很吓人——一大段英文、奇怪的符号、密密麻麻的路径。但大多数报错信息都包含几个关键的信息,只要你知道去哪里看,就能大致理解它在说什么。

错误类型 ——通常出现在最前面或最显眼的位置,比如 TypeError(类型错误)、SyntaxError(语法错误)、ReferenceError(引用错误)。你不需要理解每种类型的技术含义,但 AI 需要——所以把它完整地告诉 AI。

错误描述 ——紧跟在错误类型后面的一句话,用简短的英语描述了具体出了什么问题。比如"Cannot read properties of undefined"——意思是代码试图使用一个不存在的东西。

出错的位置 ——通常会标明是哪个文件的第几行出了问题,比如 at /src/pages/index.js:42:15。这告诉你问题发生在 index.js 文件的第 42 行。

调用栈 ——下面那一长串以 at 开头的行,记录了错误发生时代码的执行路径——程序是经过哪些函数一步步走到出错的那一行的。这对定位复杂问题很有用,但对于日常使用,关注最上面的一两行就够了。

怎么利用报错信息

面对报错时,最高效的做法是:

完整复制,原样粘贴。 把报错信息完整地复制给 AI,不要省略、不要改写、不要用自己的话概括。报错信息中的每一个细节——文件路径、行号、错误代码——都是 AI 定位问题的线索。你用自己的话说"页面打不开了"远不如直接把报错贴给它有用。

关注第一条报错。 有时候一个问题会引发一连串的报错,屏幕上可能同时出现十几条错误。不要被数量吓到——通常只有第一条是真正的问题所在,后面的报错大多是它的连锁反应。修好第一条,其他的往往会自动消失。

修复后验证功能。 AI 修复报错之后,不要只看"红字有没有消失"。重新运行代码,测试相关的功能是否正常。因为有时候"消除报错"和"解决问题"是两回事。

警惕"假修复"

这是一个需要特别注意的陷阱:AI 有时候会用"消除症状"的方式来"修复"报错,而不是真正解决根本问题。

比如,一段代码报错说"变量 x 不存在"。正确的修复可能是把变量 x 正确地定义出来。但 AI 有时可能会选择直接删掉使用变量 x 的那段代码——报错确实消失了,但你想要的功能也没了。

又比如,AI 可能会加一个"如果出错就什么都不做"的包裹——错误被静默吞掉了,不再显示红字,但问题本身还在,只是被藏起来了。

判断的方法很简单:修复之后,不仅要看报错是否消失了,还要看功能是否还在正常工作。如果一个功能在修复前虽然报错但部分能用,修复后不报错了但功能也不见了——那就不是修复,而是掩盖。

指挥与验收

一边讲怎么让 AI 帮你做,一边讲怎么看出 AI 做砸了。

指挥怎么让 AI 帮你做

指挥

当代码报错时,把完整的报错信息原样复制给 AI,不要只截取一部分或者用你自己的话概述。报错信息中包含了 AI 定位问题所需的关键细节——文件名、行号、错误类型。

连接到

术语