跳到主要内容

标准化错误码

Kumo 产品是一个基于 MACH 原则的大规模系统,采用多层 API 设计。为了规范返回状态,我们尽量减少错误码数量,并降低使用复杂性。

Status 使用 turbo::StatusCode 返回错误,该枚举类型表示无错误(OK)或某种错误情况。

错误码

下表列出了可用于选择合适错误码的情况,请选择最适合的具体错误码。

情况错误码
请求成功OK
请求被取消,通常由调用方发起CANCELLED
请求参数无效INVALID_ARGUMENT
操作未在指定时间内完成DEADLINE_EXCEEDED
请求的实体不存在NOT_FOUND
被创建的实体已存在ALREADY_EXISTS
调用方没有权限执行该操作PERMISSION_DENIED
认证失败UNAUTHENTICATED
某些基础设施资源耗尽(配额、服务器容量等)RESOURCE_EXHAUSTED
系统状态不满足操作要求FAILED_PRECONDITION
操作中止,通常由于并发问题(如序列检查失败、事务中止等)ABORTED
发生临时性错误UNAVAILABLE
客户端迭代过度,应停止OUT_OF_RANGE
请求的操作未实现UNIMPLEMENTED
内部关键不变量被破坏(需上报或升级处理的错误)INTERNAL
发生不可恢复的数据丢失或损坏DATA_LOSS
无法确定更具体的错误码UNKNOWN