我有一个用 Java 编写的服务器和一个用 PHP 编写的客户端。如果出现任何问题,客户端如何从服务器捕获异常?我在 gRPC 文档中找不到任何有关异常处理的信息。
谢谢!
我有一个用 Java 编写的服务器和一个用 PHP 编写的客户端。如果出现任何问题,客户端如何从服务器捕获异常?我在 gRPC 文档中找不到任何有关异常处理的信息。
谢谢!
对于已处理的异常,请调用responseObserver.onError()
. 如果你传入一个StatusRuntimeException
或StatusException
(通常通过创建status.asRuntimeException()
)状态代码和描述将被传达给客户端。回调中未处理的异常将取消 RPC 并继续传播异常(通常导致UncaughtExceptionHandler
执行程序被调用)。
在客户端(php)的响应中 http://www.grpc.io/grpc/php/source-class-Grpc.UnaryCall.html#82
此处的状态将具有代码和详细信息字段,它们将确定响应代码和适当的消息(如果按照 Eric 的响应中所述进行设置)。基于此,可以在客户端进行适当的错误处理。