DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go 如何定义自定义错误类型?哨兵错误与结构化错误设计

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

两种:① 简单:var ErrNotFound = errors.New("not found")(哨兵错误,配合 errors.Is);② 自定义类型:type MyError struct { Code int; Msg string },实现 Error() string 方法,携带结构化数据,配合 errors.As 提取。最佳实践:错误要包含上下文(谁、什么操作、原因),用 fmt.Errorf("%s: %w", op, err) 包装链;错误信息对用户友好、对开发者可排查。

下载推广海报

圈内讨论推广海报

《Go 如何定义自定义错误类型?哨兵错误与结构化错误设计》完整推广海报
REPLIES

回复

0 条回复
暂无回复。