SuperAPI AI 工具集

better-result-adopt

通用与其它

查看项目

更新于 10-15 20:34

技能介绍

用途:把现有代码库中基于 try/catch、Promise rejection 和抛出异常的错误处理,迁移为 better-result 的类型化 Result 错误处理,并引入铁路式编程模式。

主要能力:提供迁移策略与模式转换示例,包括 try/catch 转 Result.try、async/await 转 Result.tryPromise、null 检查转 Result.ok/Result.err、回调嵌套转 Result.gen 生成器组合,以及用 TaggedError 定义领域错误。

使用方式:建议从 I/O 边界(API 调用、数据库查询、文件操作)开始向内迁移,不要一次性全库改造。先对目标代码分类错误:领域错误用 TaggedError + Result.err,基础设施错误用 Result.tryPromise + TaggedError,缺陷类错误让其抛出(在 Result 回调中会变成 Panic)。迁移顺序为:定义 TaggedError 类、用 Result.try/tryPromise 包装抛错函数、把命令式错误检查改为 Result 链、将回调重构为生成器组合。工作流包括审计目标模块、定义错误、包装边界、链式操作、更新签名与调用方、测试错误路径。若存在 opensrc/ 目录,可读取 better-result 源码获取实现细节。

适用场景:在已有代码库中采用 better-result、转换 try/catch、替换抛出异常、迁移 Promise 代码、引入 Result 类型。

限制与注意:避免过度包装,从边界开始向内传播;TaggedError 构造时保留 cause/context;模块一旦返回 Result,调用方也应如此或显式 unwrap;回调中抛出的错误会变成 Panic,应修复缺陷而非捕获 Panic。TaggedError 具体模式见 references/tagged-errors.md。资料未提供安装命令、版本或平台信息。