一、如何自定义错误信息
1.1 为什么要自定义自己的错误信息
在实际开发中引入错误码有如下好处:
-
可以非常方便地定位问题和定位代码行(看到错误码知道什么意思,通过错误码可以定位到错误码所在行);
-
如果API对外开放,有错误码将会更专业;
-
错误码包含一定的信息,通过错误码可以判断出错误级别、错误模块和具体错误信息;
-
在实际业务开发中,一个条错误信息需要包含两部分内容:直接展示给用户的 message 和用于开发人员 debug 的 error 。message可能会直接展示给用户,error 是用于 debug 的错误信息,可能包含敏感/内部信息,不宜对外展示;
-
业务开发过程中,可能需要判断错误是哪种类型以便做相应的逻辑处理,通过定制的错误码很容易做到这点;
-
Go 中的 HTTP 服务器开发都是引用
net/http
包,该包中只有 60 个错误码,基本都是跟 HTTP 请求相关的。在大型系统中,这些错误码完全不够用,而且跟业务没有任何关联,满足不了业务需求。在实际开发中,一个错误类型通常包含两部分:Code 部分,用来唯一标识一个错误;Message 部分,用来展示错误信息,这部分错误信息通常供前端直接展示。