错误码体系
Error Code System
通过自注册错误码和 Status 类实现结构化错误传播与跨语言错误映射
子问题
1.错误码自动注册
2.跨语言错误映射
3.错误分类与分级
4.错误传播样板代码消除(宏族设计)
5.双层错误模型的粒度选择(细粒度 int vs 语义枚举)
各项目的解法1 solutions
Signals
横向对比
| 维度 | zvec |
|---|---|
| 注册机制 | 宏驱动编译期自注册,Code 构造函数写入 Meyer's Singleton map |
| 错误分类 | 四段编号(内建/通用/校验/调度)覆盖 70+ 错误码 |
| 传播模型 | 双层:底层 int ErrorCode + 上层 Result<T>=tl::expected<T,Status> |
| 跨语言映射 | pybind11 完整绑定 StatusCode 枚举 + Status 工厂方法到 Python |
| 样板消除 | CHECK_RETURN_STATUS 系列宏,按返回类型分 Status/Expected 两族 |
最佳实践
1.用宏实现编译期错误码注册,避免运行时遗漏
2.用引用变量防止链接器优化掉全局自注册对象
3.Status 工厂用变参模板实现零开销字符串拼接
4.按返回类型分族设计 CHECK 宏(Status 返回 vs expected 返回)