Files
EdgeCommon/pkg/rpc/errors/utils.go

33 lines
932 B
Go
Raw Normal View History

2021-06-05 11:09:04 +08:00
// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
package errors
import (
"errors"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
// HumanError 格式化GRPC相关错误
func HumanError(err error) error {
if err == nil {
return err
}
errStatus, ok := status.FromError(err)
if !ok {
return err
}
switch errStatus.Code() {
case codes.InvalidArgument:
return errors.New("错误的RPC参数" + err.Error())
case codes.DeadlineExceeded:
return errors.New("RPC操作超时请重试" + err.Error())
case codes.Unimplemented:
return errors.New("请求的RPC服务或方法不存在可能是没有升级API节点或者当前节点没有升级" + err.Error())
case codes.Unavailable:
return errors.New("RPC当前不可用请确保API节点已启动并检查当前节点和API节点之间的网络连接是正常的" + err.Error())
}
return err
}