diff --git a/pkg/rpc/errors/utils.go b/pkg/rpc/errors/utils.go index 097a4a2..ee265ce 100644 --- a/pkg/rpc/errors/utils.go +++ b/pkg/rpc/errors/utils.go @@ -6,27 +6,28 @@ import ( "errors" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + "strings" ) // HumanError 格式化GRPC相关错误 -func HumanError(err error) error { +func HumanError(err error, endpoints []string, configFile string) (resultErr error, isConnError bool) { if err == nil { - return err + return err, false } errStatus, ok := status.FromError(err) if !ok { - return err + return err, false } switch errStatus.Code() { case codes.InvalidArgument: - return errors.New("错误的RPC参数:" + err.Error()) + return errors.New("错误的RPC参数:" + err.Error()), false case codes.DeadlineExceeded: - return errors.New("RPC操作超时,请重试:" + err.Error()) + return errors.New("RPC操作超时,请重试:" + err.Error()), false case codes.Unimplemented: - return errors.New("请求的RPC服务或方法不存在,可能是没有升级API节点或者当前节点没有升级:" + err.Error()) + return errors.New("请求的RPC服务或方法不存在,可能是没有升级API节点或者当前节点没有升级:" + err.Error()), false case codes.Unavailable: - return errors.New("RPC当前不可用,1、请确保当前节点的api.yaml配置中的地址填写正确;2、请确保API节点已启动,并检查当前节点和API节点之间的网络连接是正常的。错误信息:" + err.Error()) + return errors.New("RPC当前不可用:
1、请确认当前节点的api.yaml(" + configFile + ")配置中的地址(" + strings.Join(endpoints, ", ") + ")是否已填写正确;
2、请确保API节点已启动,并检查当前节点和API节点之间的网络连接是正常的。
错误信息:" + err.Error()), true } - return err + return err, false }