You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:01:54