Skip to content

Commit fc38a1f

Browse files
committed
改进RPC相关提示
1 parent 2cde021 commit fc38a1f

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

pkg/rpc/errors/utils.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright 2021 Liuxiangchao [email protected]. All rights reserved.
2+
3+
package errors
4+
5+
import (
6+
"errors"
7+
"google.golang.org/grpc/codes"
8+
"google.golang.org/grpc/status"
9+
)
10+
11+
// HumanError 格式化GRPC相关错误
12+
func HumanError(err error) error {
13+
if err == nil {
14+
return err
15+
}
16+
errStatus, ok := status.FromError(err)
17+
if !ok {
18+
return err
19+
}
20+
switch errStatus.Code() {
21+
case codes.InvalidArgument:
22+
return errors.New("错误的RPC参数:" + err.Error())
23+
case codes.DeadlineExceeded:
24+
return errors.New("RPC操作超时,请重试:" + err.Error())
25+
case codes.Unimplemented:
26+
return errors.New("请求的RPC服务或方法不存在,可能是没有升级API节点或者当前节点没有升级:" + err.Error())
27+
case codes.Unavailable:
28+
return errors.New("RPC当前不可用,请确保API节点已启动,并检查当前节点和API节点之间的网络连接是正常的:" + err.Error())
29+
}
30+
31+
return err
32+
}

0 commit comments

Comments
 (0)