读懂报错信息
🎯 学完这课你能
- 读懂报错信息的三个关键部分(类型/位置/原因)
- 判断报错的严重程度(可忽略/需注意/必须修)
- 给 CC 精准描述问题,而不是说"出错了"
报错信息是代码世界里最常见的"沟通方式"。电脑不会说"哎我觉得有点不对",它会精确地告诉你——什么东西、在哪里、出了什么问题。
问题是,这些信息用英文写的,格式也不太友好。但一旦你掌握了读法,你就能:
- 自己判断问题严不严重
- 给 CC 更精确的"修复指令"
- 不再只是复制粘贴报错让 CC "你自己看着办"
报错 = 员工反馈表
跟 HR 收到一份投诉一样——你需要看三样东西:
1. 投诉类型(Error Type)—— 是什么类别的问题?
2. 投诉内容(Error Message)—— 具体说了什么?
3. 追溯路径(Stack Trace)—— 这个问题是怎么一路传递上来的?
报错的三层结构
看一个真实的报错:
拆解一下:
TypeError — 类型错误。就像让会计去写代码,"岗位不匹配"。
Cannot read properties of undefined (reading 'name')
翻译:"我想读取某个东西的 name 属性,但那个东西根本不存在(是 undefined)。"
at UserProfile (src/components/UserProfile.tsx:23)
翻译:"问题出在 UserProfile 组件的第 23 行。" 下面的 node_modules 行是框架内部的,通常可以忽略。
报错严重程度分级
不是所有报错都需要立刻修。用 HR 的思维来分级:
严重事故 — 程序崩了,必须立即修复。
HR 类比:核心员工突然离职,业务停摆。
隐患提醒 — 现在能跑,但可能将来出问题。
HR 类比:某员工连续三个月绩效 C,还没到开除的程度,但得关注。
参考信息 — 不影响运行,知道就行。
HR 类比:公司内刊通知,某个流程下个季度要改。
常见报错速查词典
下面是你做项目时最常遇到的报错,每个都翻译成了人话:
Module not found: Can't resolve './xxx'
"我按照你给的地址去找人,但那个人不在那里。" → 文件路径写错了或文件不存在。
SyntaxError: Unexpected token
"你说的话我听不懂,语法不对。" → 少了括号、引号、逗号之类的标点。
TypeError: xxx is not a function
"你让我执行一个东西,但它不是一个可以执行的功能。" → 调错了方法名或者导入写错了。
ENOENT: no such file or directory
"操作系统说:你要的那个文件/文件夹,不存在。" → 路径错了。
npm WARN deprecated
"你用的某个工具太老了,官方不再维护了。" → 暂时没事,但最好找时间升级。
EADDRINUSE: port xxxx already in use
"这个工位已经有人在用了。" → 端口被占用,关掉之前的程序或换个端口。
给 CC 描述问题的正确姿势
当你遇到报错需要 CC 帮忙时,怎么描述决定了修复效率:
"出错了,你看看怎么回事"
"跑不了了"
"报红了"
"运行 npm run dev 后,控制台显示 TypeError: Cannot read 'name' of undefined,出在 UserProfile.tsx 第 23 行"
"之前能正常运行,加了 XX 功能之后就报这个错了"
[什么命令] 时,在 [什么文件:第几行] 报了 [什么类型的错误]。我之前做了 [什么改动] 之后就出现了。"
📝 小测验
看到这个报错:Module not found: Can't resolve './utils/helpers',最可能的原因是?
📝 小测验 2
以下哪个报错最紧急、必须立即修?
📝 小测验 3
在 Stack Trace 中,你应该首先关注哪一行?