mirror of
				https://github.com/TeaOSLab/EdgeCommon.git
				synced 2025-11-04 13:10:24 +08:00 
			
		
		
		
	改进RPC相关提示
This commit is contained in:
		
							
								
								
									
										32
									
								
								pkg/rpc/errors/utils.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								pkg/rpc/errors/utils.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
// 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
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user