errors包常用方法
func Unwrap(err error) error // 获得err包含下一层错误 func Is(err, target error) bool // 判断err是否包含target func As(err error, target interface{}) bool // 判断err是否为target类型
自定义错误信息
errors.New("这是自定义错误")
# 使用fmt进行错误包装
fmt.Errorf("error: %w", err)
errors.Is()
作用:判断被包装过的error是否包含指定错误
var BaseErr = errors.New("base error") func main() { err1 := fmt.Errorf("wrap base: %w", BaseErr) err2 := fmt.Errorf("wrap err1: %w", err1) println(err2 == BaseErr) if !errors.Is(err2, BaseErr) { // err2错误 是否在BaseErr错误树中 panic("err2 is not BaseErr") } println("err2 is BaseErr") } //输出: //false //err2 is BaseErr
errors.As()
作用:判断被包装过的error是否为指定类型
标签:errors,err,fmt,golang,BaseErr,error,err2 From: https://www.cnblogs.com/xingxia/p/golang_errors.html