通过掌握跨Python、TypeScript、Rust和Go的错误处理模式(包括异常、Result类型、重试逻辑和断路器)来构建更具弹性的应用程序。
下载技能 ZIP
在 Claude 中上传
前往 设置 → 功能 → 技能 → 上传技能
开启并开始使用
测试它
正在使用“error-handling-patterns”。 How do I handle errors when calling an external API?
预期结果:
对于外部API调用,实施多层错误处理:(1) 针对不同失败类型的自定义异常层次结构,(2) 针对瞬态错误的指数退避重试,(3) 防止级联失败的断路器,(4) 具有降级数据的优雅降级。示例方法:创建自定义异常(NetworkError、TimeoutError、RateLimitError),使用3次尝试和指数退避将API调用包装在重试装饰器中,使用断路器跟踪失败率,在API不可用时提供缓存的降级数据。
正在使用“error-handling-patterns”。 When should I use Result types instead of exceptions?
预期结果:
对预期失败(验证错误、未找到错误、业务逻辑错误)使用Result类型,因为调用者应该显式处理成功和失败两种情况。对真正异常的情况(空指针、内存不足、意外运行时错误)使用异常。Result类型使错误处理在类型系统中可见,强制调用者考虑失败情况。在TypeScript中,Result<T, E> = { ok: true, value: T } | { ok: false, error: E }。在Rust中,?运算符和Result<T, E>类型提供内置支持。这种方法提高了代码可读性并减少了意外的运行时错误。
安全审计
安全This skill is a documentation and educational resource about error handling patterns. The static scanner flagged 49 potential issues, but after evaluation all findings are FALSE POSITIVES. The detected patterns (backtick syntax examples, HTTP library examples, error categories) are educational code snippets in markdown documentation, not executable malicious code. No security concerns identified.
质量评分
你能构建什么
提高应用程序可靠性
为新功能或现有功能添加健壮的错误处理,包括适当的异常层次结构和有意义的错误消息。
构建容错系统
为分布式系统和微服务实现重试逻辑、断路器和优雅降级。
学习跨语言模式
了解跨Python、TypeScript、Rust和Go的错误处理方法,以便为每种情况选择最佳方法。
试试这些提示
帮助我实现从数据库获取用户数据的函数的正确错误处理。我想创建自定义异常类并适当处理不同的错误场景。
展示如何在TypeScript中实现Result类型模式来解析JSON数据。包括正确的错误类型和可链式调用的错误处理。
创建一个Python装饰器,为网络调用实现具有指数退避的重试逻辑。处理不同的异常类型并包含可配置的尝试次数。
最佳实践
- 快速失败 - 尽早验证输入并提供具有上下文的有意义错误消息
- 保留错误上下文,包括堆栈跟踪、时间戳和相关元数据
- 在可以有意义地响应错误的适当级别处理错误
- 适当记录错误 - 记录意外错误,不记录预期验证失败
避免
- 使用过于宽泛的通用Exception处理器捕获错误,这会隐藏bug
- 空的catch块静默吞下错误而不记录或处理
- 返回错误代码而不是使用适当的异常或Result类型
- 通过不正确处理promise拒绝来忽略异步错误