Skip to content

问题排查

学习目标:学会排查和修复 AI 生成代码中的问题

预计时间:30-45 分钟

难度:⭐⭐⭐

AI 代码出问题的常见原因

AI 生成的代码出 bug,通常是这几个原因:

原因表现频率
API 版本过时方法不存在、参数不对很常见
上下文丢失变量未定义、导入缺失常见
逻辑错误功能不符合预期常见
类型错误TypeScript 报错常见
异步处理不当Promise 相关错误较常见

排查流程

第一步:看错误信息

错误信息是最重要的线索。完整复制,包括:

  • 错误类型
  • 错误描述
  • 堆栈信息(哪个文件、哪一行)

第二步:定位问题代码

根据堆栈信息找到出错的位置。看看那几行代码在干什么。

第三步:分析原因

常见的分析方向:

  • 这个变量/函数从哪来的?有没有正确导入?
  • 这个 API 的用法对不对?查一下文档
  • 数据的类型对不对?打印出来看看

第四步:让 AI 修复

把信息整理好,发给 AI:

运行时报错:
[完整错误信息]

出错的代码(第 XX 行附近):
[相关代码]

我分析可能是 [你的猜测],请帮我修复。

常见问题及解决方案

问题一:模块/方法不存在

错误示例:

TypeError: xxx is not a function
Module not found: Can't resolve 'xxx'

原因: AI 用了过时的 API 或者不存在的包

解决:

这个错误说 [方法名] 不存在。
请查一下 [库名] 的最新文档,用正确的 API 重写这段代码。
我用的版本是 [版本号]。

问题二:类型不匹配

错误示例:

Type 'string' is not assignable to type 'number'
Property 'xxx' does not exist on type 'yyy'

原因: AI 搞混了数据类型

解决:

TypeScript 报类型错误:
[错误信息]

这是相关的类型定义:
[类型代码]

请修复类型问题。

问题三:异步问题

错误示例:

Unhandled Promise rejection
Cannot read property of undefined (异步数据还没返回)

原因: 没有正确处理 Promise

解决:

这段代码有异步问题,数据还没返回就被使用了。
请用 async/await 重写,并添加 loading 状态处理。

[相关代码]

问题四:依赖缺失

错误示例:

xxx is not defined
Cannot find module 'xxx'

原因: AI 忘了导入依赖

解决:

代码里用了 [变量/模块名],但没有导入。
请添加必要的 import 语句。

调试技巧

技巧一:加日志

让 AI 在关键位置加 console.log:

这段代码运行结果不对,请在关键位置添加 console.log,
帮我追踪数据的变化过程。

技巧二:简化问题

把复杂的代码拆成小块,逐个测试:

这个函数太复杂了,出了问题不好定位。
请把它拆成几个小函数,每个函数只做一件事。

技巧三:对比工作版本

如果之前能跑,现在不能跑:

bash
git diff HEAD~1  # 看看改了什么

然后告诉 AI:

这段代码之前能跑,改了 [xxx] 之后就报错了。
请对比一下,找出问题。

什么时候该放弃让 AI 修

有些问题 AI 修不好,越修越乱。这时候:

  1. 回滚代码git checkout -- .
  2. 换个思路:重新描述需求,让 AI 从头写
  3. 自己动手:有些问题人修比 AI 快
  4. 查文档:AI 的知识可能过时了

预防问题

写代码时

  • 让 AI 生成代码后,先看一遍再运行
  • 复杂功能分步实现,每步都测试
  • 用 TypeScript,让类型系统帮你检查

选工具时

  • 用最新版本的 AI 工具
  • 告诉 AI 你用的框架版本
  • 遇到版本问题,直接贴官方文档链接

本章小结

  • 错误信息是最重要的线索,要完整复制
  • 常见问题:API 过时、类型错误、异步问题、依赖缺失
  • 给 AI 的信息越完整,修复越准确
  • AI 修不好的问题,回滚重来或者自己动手
  • 预防比修复更重要

模块总结

恭喜你完成了 AI 编程实战模块!

回顾一下学到的内容:

  • 选择合适的 AI 编程工具
  • 不同项目类型的开发策略
  • AI 辅助开发的完整流程
  • 三个实战项目的开发经验
  • 最佳实践和问题排查

下一步建议:

  1. 选一个实战项目,从头做一遍
  2. 记录开发过程中的提示词和问题
  3. 总结自己的 AI 编程工作流

← 返回:最佳实践 | 返回模块目录 →

最近更新

基于 Apache 2.0 许可发布