Go 错误处理:从 if err != nil 到统一错误响应
· 阅读需 9 分钟
if err != nil 本身不难,难的是错误在不同层该怎么处理:
- 这个错误该给用户看"用户名已存在",还是"服务器内部错误"?
- 为什么生产日志里全是
ERROR create user failed: duplicate key value violates unique constraint "idx_users_email",而用户看到的是白屏? - 为什么前端拿到的 409 里带出了数据库表名?
- 为什么一条请求失败,日志里出现了 3 条错误记录?