V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
atVoid
V2EX  ›  程序员

Go: 支持错误堆栈, 错误码, 错误链的工具库, 实现优雅的错误处理

  •  
  •   atVoid ·
    morrisxyang · 2023-07-07 11:53:17 +08:00 · 796 次点击
    这是一个创建于 534 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/morrisxyang/errors

    在业务开发中需要一个支持错误码对外返回, 堆栈打印等能力的错误工具库, 先开始使用 pkg/errors, 但该项目已经只读, 上次更新是几年前, 而且有一些点比如调整堆栈深度等没有支持, 后续根据业务的需要抽取了一个通用库, 做了一些优化, 详见下方.

    如果觉得有用欢迎 Star 和 PR, 有问题请直接提 issue

    errors

    Go Reference Static Badge Coverage Status Go Report Card Static Badge

    简单的支持错误堆栈, 错误码, 错误链的工具库:

    • 支持携带堆栈, 嵌套构造错误链

    • 支持携带错误码, 方便接口返回

    • 支持自定义堆栈打印深度和错误链打印格式

    • 使用 CallersFrames 替代 FuncForPC 生成堆栈, 避免特殊情况line number 错误等问题, 详见runtime: strongly encourage using CallersFrames over FuncForPC with Callers result

    • 简化堆栈信息, 一条链路多次Wrap操作只保留最深层堆栈, 只打印一次

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2860 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:43 · PVG 20:43 · LAX 04:43 · JFK 07:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.