Skip to main content

Module errors

Module errors 

Source

Macros§

errorf
返回带格式化消息的分类错误: errs::errorf!(errs::Kind::NotFound, "user {} not found", name)

Structs§

Body
§8.6 共享错误体:HTTP 响应体、CLI 机器格式 stderr 与 MCP _meta.xyz.error 共用的单一形状。平铺 error 键与旧契约字节兼容,code/detail 纯增量。
Error
Error 是库内统一的错误类型(CodedError 的 Rust 对应物)。 kind 缺省为 Internal;用户在自己的 handler 里也可以直接返回任何 std::error::Error(由 classify 兜底分类为 Internal)。
Rich
§8.5 的三层可选富化上下文。

Enums§

Kind
Kind 给错误分类。前端通过 http_status、exit_code、jsonrpc_code 把 Kind 翻译成各自渠道的错误表示。

Functions§

classify
沿错误链找到第一条带分类的错误并返回其 Kind: 未分类的非空错误兜底 Internal。入参需 ’static 具体错误(或经 source() 拿到的 &dyn Error + ’static)。
error_body
把任意错误投射为共享错误体(spec §8.6)。消息取最内层 cause, 富化层(code/detail)从链上第一个分类载体上取。
error_status
HTTP 状态:显式 §8.5 status 覆盖优先,否则按 Kind 推导。
exit_code
把 Kind 翻译成 CLI 进程退出码。
from_chain
沿错误链找第一个分类载体(Go errors.From 的对应物)。
http_status
把 Kind 翻译成自然的 HTTP 状态码。
is_broken_pipe
错误链上是否为管道早关(EPIPE):CLI 出口据此静默终止(对齐 Go 进程被 SIGPIPE 终止的 128+13=141 行为),而不是打印错误体。
jsonrpc_code
把 Kind 翻译成 JSON-RPC 2.0 错误码。-32000..-32099 是 JSON-RPC 与 MCP 保留给应用自定义服务端错误的区间。
new
便捷构造函数(对齐 Go 的 errs.New/errs.Errorf/errs.Wrap)。

Type Aliases§

Result
命令 handler 的 canonical 返回类型。