有这种写法,定义一个全局变量的 error ,在用到的时候直接返回
1 | var ErrNotFound = errors.New("404") |
这样写有个隐患,如果有人在某个方法里写了句
1 | errNotFound = nil |
那么这个 error 就彻底废了。关键是一个 err 返回了 nil,你排查线上问题会走错方向。
解决方案
可以用常量来做这个全局变量:
1 | type xErr string |
有这种写法,定义一个全局变量的 error ,在用到的时候直接返回
1 | var ErrNotFound = errors.New("404") |
这样写有个隐患,如果有人在某个方法里写了句
1 | errNotFound = nil |
那么这个 error 就彻底废了。关键是一个 err 返回了 nil,你排查线上问题会走错方向。
可以用常量来做这个全局变量:
1 | type xErr string |