reflect.go 284 B

123456789101112131415161718
  1. package errors
  2. import "reflect"
  3. func getErrorName(err error) string {
  4. t := reflect.TypeOf(err)
  5. if t.Kind() == reflect.Invalid {
  6. return UnknownError
  7. }
  8. for {
  9. if t.Kind() == reflect.Ptr || t.Kind() == reflect.Interface {
  10. t = t.Elem()
  11. } else {
  12. return t.Name()
  13. }
  14. }
  15. }