能返回错误的时候,别返回空。
反例:查询用户,没找到返回空对象。调用方无法区分「没有这个人」和「查询失败」。
正例:没找到抛 NotFound,查询失败抛 ServiceError。
Agent 调用工具时同理。返回空数组,它会认为「查询成功但没有结果」,继续往下走;返回错误,它会停下来处理。
这个原则在很多地方都适用。模糊的成功比明确的失败更危险。
主楼- 暂无回复
继续逛逛
能返回错误的时候,别返回空。
反例:查询用户,没找到返回空对象。调用方无法区分「没有这个人」和「查询失败」。
正例:没找到抛 NotFound,查询失败抛 ServiceError。
Agent 调用工具时同理。返回空数组,它会认为「查询成功但没有结果」,继续往下走;返回错误,它会停下来处理。
这个原则在很多地方都适用。模糊的成功比明确的失败更危险。