Effect catchFilter 与 Filter:可组合的错误匹配与提取
讲清 Effect.catchFilter 与 Filter 模块:用可组合的 Filter 同时完成匹配与提取,保留未命中错误,并对比 catchTag、catchIf,附带 fromPredicate 收窄类型与实际不符的坑。
共 6 篇文章带有这个标签。
讲清 Effect.catchFilter 与 Filter 模块:用可组合的 Filter 同时完成匹配与提取,保留未命中错误,并对比 catchTag、catchIf,附带 fromPredicate 收窄类型与实际不符的坑。
用 catchReason、catchReasons、unwrapReason 处理 AiError、HttpClientError 这类带嵌套 reason 的错误,对比手写二级 switch 与 catchTags,并讲清残余类型的坑。
讲解 ErrorReporter 与 withErrorReporting:用 ignore、severity、attributes 标注错误统一上报 Cause,defectsOnly 的真实语义与默认 Info 陷阱,unstable。
有了类型化错误之后,真正的问题是设计:错误该由哪一层处理,底层错误在哪里翻译成领域错误,以及为什么重试之前必须先给错误分类。
把错误写进 Effect 的 E 参数:区分可预期的失败(failure)与不可预期的缺陷(defect),用 TaggedError 定义领域错误,再用 catchTag 精确恢复并让类型随之收窄。
用 Data.TaggedError 把错误写进 Effect 的 E 参数,用 catchTag 精确恢复,再分清预期失败与缺陷 defect。代码均已通过 tsc strict 编译验证。