github.com/tencent/goom@v1.0.1/erro/traceable.go (about) 1 // Package erro 收拢了所有的错误类型,错误溯源类型等 2 // 1. 支持打印不同该类型的错误的详细提示, 方便确定问题的解决方法 3 // 2. 异常可以溯源, 方便问题排查 4 package erro 5 6 // Traceable 带原因的异常类型 7 // TODO later 可以使用go自带的 %w 功能替代 8 type Traceable interface { 9 // Cause 获取错误的原因 10 Cause() error 11 } 12 13 // CauseOf 获取错误原因 14 func CauseOf(err error) error { 15 if c, ok := err.(Traceable); ok { 16 return c.Cause() 17 } 18 return nil 19 }