Skip to content

第 6 课:调试和错误处理

📌 学习目标:学会让 Claude Code 帮你找出和修复代码问题 ⏱️ 预计时长:15 分钟 🎯 本节节奏:理解报错 → 描述问题 → 修复验证


一、为什么代码总会出错?

即使是专业的程序员,写代码也会出错。原因包括:

  • 语法写错了(少了一个括号、拼错了一个词)
  • 逻辑不对(条件判断写反了)
  • 路径不对(文件找不到)
  • 数据格式不对(期望是数字,实际是文字)

好消息是:Claude Code 擅长找错和修错。 你不需要懂编程,只需要知道"哪里不对"。


二、错误分类:怎么描述问题

类型 1:运行时报错

程序跑起来了,但中途报错停止。

错误信息示例:

FileNotFoundError: [Errno 2] No such file or directory: 'E:/data/sales.csv'
TypeError: can't multiply sequence by non-int of type 'float'
KeyError: 'name'

你怎么描述:

脚本运行时报错:FileNotFoundError
说找不到 E:/data/sales.csv 文件
这个脚本报错了:TypeError,说不能把字符串和数字相乘
帮我看看哪里出了问题

类型 2:结果不对

程序跑完了,但结果不是你想要的。

你怎么描述:

脚本运行成功了,但输出的销售额是 0,
我期望它应该输出实际的销售额总和
生成的报告格式不对,
我希望每一行是一个产品,但现在所有数据挤在一行

类型 3:性能问题

程序能跑,但太慢了。

你怎么描述:

这个脚本处理 1000 条数据要 30 秒,
有没有办法让它更快?

三、调试技巧

技巧 1:直接粘贴错误信息

Claude 能读懂大部分编程错误。直接复制粘贴:

这个脚本报错了,错误信息是:
Traceback (most recent call last):
  File "script.py", line 10, in <module>
    result = data['total']
KeyError: 'total'
请帮我修复

技巧 2:描述预期和实际的差异

我期望输出:每个产品的总销售额
实际输出:所有产品的数量总和
请帮我找出问题

技巧 3:让 Claude 加调试信息

在这个脚本的关键位置加上 print 语句,
帮我看看程序运行到哪一步出错的

技巧 4:逐步排查

如果问题复杂,可以让 Claude 一步步检查:

请先帮我检查这个脚本的语法是否正确,
如果有问题指出来

然后:

语法没问题,但运行结果不对,
让我告诉你哪里不对...

四、实战示例

示例 1:文件路径错误

报错:

FileNotFoundError: [Errno 2] No such file or directory: 'E:/data/sales.csv'

描述:

脚本运行时报错找不到 E:/data/sales.csv
请检查路径是否正确,
实际文件在 E:/data/2026/sales.csv

Claude 会:

  • 修改文件路径
  • 确认修改后的路径存在
  • 重新运行脚本验证

示例 2:数据类型错误

报错:

TypeError: unsupported operand type(s) for *: 'str' and 'int'

描述:

脚本在处理销售数据时报错,
说不能把字符串和整数相乘
我怀疑是 CSV 里的数字被读成了文字
请帮我修复

Claude 会:

  • 检查数据类型转换
  • 加上 int() 或 float() 转换
  • 验证修复后能正常运行

示例 3:逻辑错误

现象:

脚本运行没报错,但输出的结果是 0
我期望的是销售额总和

Claude 会:

  • 检查计算逻辑
  • 发现可能是变量名写错了
  • 修复并验证

五、预防错误的技巧

5.1 让 Claude 加错误处理

请给这个脚本加上错误处理,
如果文件不存在或数据格式不对,
不要报错停止,而是输出友好的提示信息

5.2 让 Claude 做代码审查

请帮我检查这段代码,
看看有没有潜在的 bug 或可以改进的地方

5.3 让 Claude 加日志

在关键步骤加上日志输出,
这样运行时我可以知道程序走到了哪一步

六、本节小结

要点说明
错误很正常每个人写代码都会出错,包括专业程序员
描述问题告诉 Claude 报了什么错、期望什么结果
粘贴错误信息Claude 能读懂大部分编程错误
迭代修复修了一个问题可能还有下一个,继续说
预防为主让 Claude 加错误处理和日志,减少未来的问题

七、下一步

→ 第 7 课:使用技能完成复杂任务

Released under the MIT License.