当代码运行报错或出现预期外行为时,CodeBuddy 可对异常代码进行定向诊断,给出原因分析与修复方案,减少逐行排查和反复搜索的时间。
触发方式
- 右键快速修复:在编辑器中选中可疑代码片段,右键选择 CodeBuddy > 修复代码(或通过命令面板输入
Fix Code/修复代码),AI 会自动分析并返回修改建议。 - 结合终端报错:若程序已在终端抛出异常,可直接在侧边栏对话中输入
@终端(详见 3.4.3)引用最新报错输出,并追加指令如"请定位并修复上述报错"。 - 对话描述现象:在侧边栏直接描述 Bug 现象,例如"这段代码在处理空数组时会抛越界异常"或"这里并发写入时数据偶尔会丢失",AI 会结合当前文件上下文定位问题。
操作流程
- 提交上下文:提交代码片段,并尽量附带报错堆栈、输入示例或实际输出结果。
- 查看诊断:CodeBuddy 会给出问题定位说明(如"第 14 行未判空导致 NullPointerException")和修改后的代码块。
- 对比差异:修复建议通常以 diff 视图或高亮形式呈现改动点,便于确认是否仅修改了预期位置。
- 应用修复:点击"应用"将代码替换至原处;若改动涉及多处,也可仅复制需要的部分手动粘贴。
适用场景
| 场景类型 | 典型表现 | 修复能力 |
|:---|:---|:---|
| 语法/编译错误 | 拼写错误、括号不匹配、类型不兼容 | 快速修正语法细节 |
| 运行时异常 | 空指针、数组越界、除零、类型转换失败 | 补充判空、边界检查、异常捕获 |
| 逻辑错误 | 输出结果不符合预期,但无显式报错 | 分析条件分支或算法漏洞并给出修正 |
| 常见性能隐患 | 循环内重复查询、内存泄漏风险 | 提示更高效的写法或资源释放方案 |
实用技巧
- 信息给足:描述现象时附上"期望输出"与"实际输出"、触发步骤及关键输入数据,定位准确率会明显提升。
- 跨文件定位:如果报错堆栈涉及多个文件,在对话中通过
@文件:路径引入相关模块,让 AI 分析完整调用链,而非只看当前文件。 - 分步采纳:对于复杂 Bug,AI 可能先给出根因分析,再给出修复代码。先阅读分析部分确认逻辑合理,再决定是否采纳代码修改。
- 验证先行:修复后直接运行原有测试用例,或手动复现报错场景,确认无误后再提交版本控制。
注意事项
自动修复擅长处理模式化、局部性的常见错误。若 Bug 涉及复杂业务规则、分布式状态一致性或深层架构设计问题,建议将 AI 的分析作为排查线索,最终修复方案仍需结合人工判断,避免盲目采纳引入次生问题。