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

Go 错误处理最佳实践:error 接口、errors.Is/As 与错误包装

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

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

error 是内置接口:type error interface { Error() string }。errors 包:① errors.New("msg") 创建简单错误;② fmt.Errorf("%w", err) 包装错误(%w 标记包装);③ errors.Is(err, target) 判断错误链中是否存在目标错误(值比较,如 os.ErrNotExist);④ errors.As(err, &target) 提取错误链中特定类型的错误实例(错误携带额外数据时用);⑤ errors.Unwrap(err) 取上一层。Go 1.20+ 支持 errors.Join 合并多个错误。

下载推广海报

圈内讨论推广海报

《Go 错误处理最佳实践:error 接口、errors.Is/As 与错误包装》完整推广海报
REPLIES

回复

0 条回复
暂无回复。