前言
go的错误处理体系中,需要开发者把错误码层层向调用者返回,外层接收到错误信息后,会打印日志,但是我们通过日志并不能准确知道错误到底是那一层返回的,也就是不会打印出错误堆栈信息。这不利于问题的排查,而github.com/pkg/errors则解决了这个问题
示例一
本例子我们展示使用go-sdk原生错误包进行错误处理的情况:
如上代码我们通过main函数依次调用了app->domain->infra层的代码,其中infra层返回了原生的error信息,运行上面代码会输出:insert db error,但是我们并不知道到底是那一层抛出的错误。
示例二
如果我们把infra.go的代码改成如下