为什么 grpc.FutureTimeoutError 不是 grpc.RpcError 和 grpc.Call 的实例?

why is grpc.FutureTimeoutError not an instance of grpc.RpcError and grpc.Call?

如果 FutureTimeoutError 具有 code()details() 等方法,这将使超时处理更加清晰,就像 _InactiveRpcError 一样。

这是设计决定吗? grpc 社区是否愿意接受以这种方式更改 FutureTimeoutError 实现的拉取请求?

grpc.FutureTimeoutErrorgrpc.Future.resultgrpc.Future.exception 超过截止日期但没有得到任何结果时引发的异常。例如,RPC 需要 10 秒才能完成,但我们得到 result(timeout=2)。然后 grpc.FutureTimeoutError 将在 2 秒后升高以指示时间到。那时 RPC 还没有接近完成,所以我们无法访问 code()details().

这不是客户端或服务器上的 RPC 问题,这意味着 grpc.RpcError 可能不适合 grpc.FutureTimeoutError