用途:提供跨语言的错误处理模式与策略参考,帮助在 Rust、Go、Python、JS/TS 等语言中做出正确的错误分类与处理决策。
主要能力:先按三类对失败分类——可恢复的预期错误(返回类型化错误,仅在瞬时且幂等时重试)、程序 bug(panic/assert/throw,不尝试恢复)、致命环境错误(在边界快速失败)。Rust 中给出 thiserror 与 anyhow 的选用规则:库和需匹配错误变体的代码用 thiserror,应用顶层用 anyhow 传播并添加上下文。强调用 .with_context、%w、raise ... from、new Error(msg,{cause}) 保留原因链,避免用 %v 或字符串插值破坏类型化链。
恢复策略:重试需指数退避加抖动并设上限,仅限瞬时且幂等操作;非幂等写入需幂等键。提供熔断器状态机(CLOSED→OPEN→HALF_OPEN)与降级回退思路。
API 错误响应:遵循 RFC 9457/7807 problem+json,使用稳定机器可读 code,按错误类型映射状态码(400/401/403/404/409/429/503/500),5xx 不泄露堆栈、SQL、路径等内部信息。
安全与管道:生产环境隐藏细节,日志前脱敏邮箱、证件号、卡号、密码等,错误日志限流,认证错误统一以避免用户枚举;批处理收集部分失败并路由死信队列,失败率超阈值则整体失败。
限制:资料未提供具体安装命令、收费或平台信息;内容为模式参考,需结合具体语言与项目约束落地。