0314

wrap error

  • Adding additional context to an error
  • Marking an error as a specific error

fmt.Errorf("%w", err)

1
bar error -> Wrap error -> fmt.wrapError { bar error }

原先被包裹的 err, 仍保持可用状态 fmt.Error("%v",err)变成 string, 原 Err 已经无法追溯

spew 将变量数据格式化输出

  • 可以批量传入参数spew.Sdump(var1, var2, var3)
  • 可以通过 spew.NewDefaultConfig 独立一份特定参数的输出实例
  • 也可以通过 spew.Config 修改包变量, 将配置覆盖整个包

As, Is

  • As 提供具体错误类型匹配, 对应自定义的某种错误类型结构体. 仅会对比错误错误链的第一个自定义错误类型是否匹配
  • Is 提供具体的某一个实例错误类型匹配. 会递归遍历是否匹配