SuperAPI AI 工具集

error-handling-patterns

编程与开发

查看项目

更新于 10-16 04:28

技能介绍

用途:该技能围绕跨语言的错误处理与容错设计,帮助开发者构建更具韧性的应用。资料按“错误处理哲学”区分三种方式:异常适用于意外错误与异常条件;Result 类型适用于可预期的错误与校验失败;错误码适用于 C 风格 API 与遗留系统集成。

主要能力:给出 .NET 异常模式,包括自定义异常层级(ApplicationException、ValidationException、NotFoundException)以及 ABP 的 BusinessException 用法;给出 TypeScript 风格的 Result<T, E> 类型与 Ok/Err 辅助函数,并用 parseJSON 示例展示如何把异常转为返回值。容错部分基于 Polly,包含 HTTP 重试(指数退避加抖动)、数据库瞬时错误重试(识别 PostgreSQL 瞬时 SQLSTATE 码)、重试+熔断+超时的组合策略,以及依赖注入注册方式。还介绍熔断器三态(CLOSED、OPEN、HALF_OPEN)与状态流转,以及用 Fallback 策略实现优雅降级。

使用方式:资料以代码示例为主,展示如何定义异常、构造 Result、构建重试与熔断策略、通过 AddPolicyHandler 注册到 HttpClient,以及用 FallbackAsync 指定降级动作。何时重试:HTTP API 调用、数据库操作、外部服务集成、文件 I/O;不应重试:认证失败、校验错误、业务逻辑错误、无保护的非幂等操作。

最佳实践:快速失败、保留上下文、消息有意义、合理记录日志、在能处理的层级捕获、清理资源、不吞掉错误、尽量使用类型化错误。

限制:资料未提供具体安装命令、版本要求、性能数据或收费信息;示例以 .NET/Polly 与 TypeScript 为主,其他语言仅作概念性说明。更完整内容指向 references/exception-hierarchy-design.md、references/polly-advanced-patterns.md、references/async-error-handling.md。