Services can resolve legacy aliases and expose the catalog over CLI and HTTP instead of ad-hoc error strings. Co-authored-by: Cursor <cursoragent@cursor.com>
27 lines
2.0 KiB
Go
27 lines
2.0 KiB
Go
package domains
|
|
|
|
import "error-code-system/errcode"
|
|
|
|
func registerSys(r *errcode.Registry) {
|
|
must(r, def(errcode.SysInternal, 500, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectUnknown,
|
|
"内部错误", "保留 trace_id,按错误日志定位,不要对调用方暴露内部细节"))
|
|
must(r, def(errcode.SysUnknownCode, 500, errcode.SeverityError, errcode.RetryNever, errcode.SideEffectUnknown,
|
|
"未登记的错误码", "按失败处理(fail-closed),并把该码补登记后再放行"))
|
|
must(r, def(errcode.SysInvalidArgument, 400, errcode.SeverityWarn, errcode.RetryNever, errcode.SideEffectNone,
|
|
"参数不合法", "检查请求字段与类型,修正后重新提交"))
|
|
must(r, def(errcode.SysUnauthorized, 401, errcode.SeverityWarn, errcode.RetryNever, errcode.SideEffectNone,
|
|
"未授权", "检查凭证是否缺失、过期或与资源不匹配"))
|
|
must(r, def(errcode.SysNotFound, 404, errcode.SeverityInfo, errcode.RetryNever, errcode.SideEffectNone,
|
|
"资源不存在", "确认标识是否正确,或资源是否已删除"))
|
|
must(r, def(errcode.SysConflict, 409, errcode.SeverityWarn, errcode.RetryNever, errcode.SideEffectPossible,
|
|
"状态冲突", "刷新当前状态后再决定是否重试,不要盲目重放"))
|
|
must(r, def(errcode.SysRateLimited, 429, errcode.SeverityWarn, errcode.RetryTransient, errcode.SideEffectNone,
|
|
"触发限流", "按退避重试,不要立即打满重试"))
|
|
must(r, def(errcode.SysTimeout, 504, errcode.SeverityError, errcode.RetryTransient, errcode.SideEffectPossible,
|
|
"操作超时", "先确认是否已产生副作用,再做有界重试"))
|
|
must(r, def(errcode.SysCancelled, 499, errcode.SeverityInfo, errcode.RetryNever, errcode.SideEffectPossible,
|
|
"操作已取消", "不要把取消当成成功或普通失败;需要时由调用方重新发起"))
|
|
must(r, def(errcode.SysUnavailable, 503, errcode.SeverityError, errcode.RetryTransient, errcode.SideEffectNone,
|
|
"依赖不可用", "确认依赖健康后退避重试"))
|
|
}
|