gitee.com/liuxuezhan/go-micro-v1.18.0@v1.0.0/client/grpc/error.go (about) 1 package grpc 2 3 import ( 4 "gitee.com/liuxuezhan/go-micro-v1.18.0/errors" 5 "google.golang.org/grpc/status" 6 ) 7 8 func microError(err error) error { 9 // no error 10 switch err { 11 case nil: 12 return nil 13 } 14 15 // micro error 16 if v, ok := err.(*errors.Error); ok { 17 return v 18 } 19 20 // grpc error 21 if s, ok := status.FromError(err); ok { 22 if e := errors.Parse(s.Message()); e.Code > 0 { 23 return e // actually a micro error 24 } 25 return errors.InternalServerError("go.micro.client", s.Message()) 26 } 27 28 // do nothing 29 return err 30 }