error 错误处理
Go 推荐把错误作为返回值处理。
最常见写法:
一、返回错误
nil 表示没有错误。
二、fmt.Errorf
需要带上下文时,用 fmt.Errorf:
%w 表示包装原始错误,后续可以用 errors.Is 或 errors.As 判断。
三、错误包装
不要只用字符串比较错误:
四、自定义错误类型
使用:
判断:
五、错误处理建议
- 能处理就处理,不能处理就返回给上层。
- 返回错误时加上业务上下文。
- 不要忽略错误。
- 不要用
panic处理普通业务错误。
错误示例:
推荐:
六、什么时候返回 error
适合返回 error:
- 文件不存在
- 网络请求失败
- 数据库查询失败
- 参数业务校验失败
- JSON 解析失败
普通业务中,error 是 Go 最常见、最清晰的失败表达方式。

