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