日志里写着"成功",结果其实失败了,怎么防?
这类"静默失败"很常见,原因多是代码只记录了"执行了",没有检查"结果对不对",或者把错误吞掉了。防法是:每个关键操作完成后检查结果,比如文件是否存在、数据条数是否合理;错误要明确抛出,不要只打印一行日志就继续;关键任务失败要报警;定期抽查真实结果,而不是只看日志。让 AI 写代码时,把这些要求写进项目规则。
这叫"静默失败",AI 写的代码里尤其常见。
为什么会这样
- 只记录"执行了":代码在操作后直接写"成功",没有检查结果;
- 错误被吞掉:出错时只打印一行信息,程序继续往下走;
- 没有报警:失败了也没人知道;
- 只看日志:你以为日志就是真相。
怎么防
- 操作后检查结果:写了文件,检查文件存在且大小合理;写了数据,检查条数是否符合预期;
- 错误要抛出:关键步骤出错,就明确报错、停止,而不是继续执行,这也是「写进项目规则的四条红线:不写死、定结构、不丢标识、不吞错误」里的一条;
- 失败要报警:备份、定时任务、支付回调这类关键任务,失败时通知你;
- 定期抽查真实结果:别只看日志,隔一段时间直接去看数据、看文件。
一个真实的风险
备份就是最典型的例子:日志每天写着成功,实际早就失败了,等需要恢复时才发现没有可用的备份,见「备份没恢复过,就等于没有备份:一次"静默失败"的教训」。
让 AI 帮你查
可以让 AI 专门审查一遍代码,找出"只记录不检查""捕获了错误但没处理"的地方。用新对话审查效果更好,见「用新对话审查 AI 写的代码:避免"自己检查自己"」。
小结
日志说成功不等于真的成功。关键操作要检查结果、失败要报错、出事要报警。