首页 > 解决方案 > 全局定义的错误在 RPC 返回中不相等

问题描述

我有几个全局定义的错误类型变量。例如,

var ErrFileNotExist = errors.New("File does not exist")

在服务器端,这被用作 RPC 中的返回值,例如,

func (t *Type) F(args *T1, reply *T2) error {
   ...
   // some code here.
   return ErrFileNotExist
}

但是在客户端调用此 RPC 并获取返回值,将其与 global 进行比较ErrFileNotExist,它不匹配。那是,

...
// client set up
e := c.Call(...)
log.Prinln(e) // File does not exist
log.Println(e == ErrFileNotExist)  // false

为什么会发生这种情况?有什么解决方法吗?

标签: gorpc

解决方案


推荐阅读