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) 包装链;错误信息对用户友好、对开发者可排查。
回复
0 条回复