github.com/pkg/errors中errors.Wrap与errors.WithMessage的区别是什么?
github.com/pkg/errors 工具包使用说明
Wrap(err error, msg string)和WithMessage(err error, msg string)这两个函数都实现了causer接口,因此都能和Cause函数配合使用。- 之前误以为只有
Wrap需要搭配Cause来追溯根错误,但实际WithMessage也能完成同样的工作,比如下面这段代码:
func main() { err := errors.New("first") err1 := errors.WithMessage(err, "tmp") err2 := errors.WithMessage(err1, "tmp") err3 := errors.WithMessage(err2, "tmp") fmt.Printf("%s", errors.Cause(err3)) }
这段代码的输出结果是:first
内容的提问来源于stack exchange,提问作者nakem
相关产品推荐
相关产品推荐

