我有一个在Ruby中运行的简单gRPC服务。在某些情况下,我想以受控方式向客户端返回错误,例如带有错误消息的HTTP状态代码。我没有从文档中看到任何明确的方法来做到这一点;这样做的正确方法是什么?
答案 0 :(得分:2)
经过一段时间的挖掘,我认为正确的答案是使用GRPC::BadStatus
,如here所述:
BadStatus是一个表示错误的异常类 发生在GRPC连接的任何一端。它被提升了 表示应将状态错误返回到a的另一端
GRPC
连接;当它被抓住时意味着这一端收到了一个状态 错误。每个模块中都有BadStatus的子类
GRPC
状态。例如,GRPC::Cancelled
类对应于状态CANCELLED
。有关每个状态代码的详细说明,请参阅https://github.com/grpc/grpc/blob/master/include/grpc/impl/codegen/status.h。
所以,提出这样的错误
raise GRPC::BadStatus.new_status_exception(CANCELLED)
应该这样做。