Обработка исключений в gRPC

У меня есть сервер, написанный на Java, и клиент, написанный на PHP. Как клиент может перехватить исключение с сервера, если что-то пойдет не так? Я не могу найти ничего об обработке исключений в документации gRPC.

Благодарю вас!


person Kevin    schedule 07.08.2016    source источник


Ответы (2)


Для обработанных исключений вызовите responseObserver.onError(). Если вы передадите StatusRuntimeException или StatusException (обычно создается через status.asRuntimeException()), код состояния и описание будут переданы клиенту. Необработанные исключения в обратном вызове отменят RPC и продолжат распространять исключение (обычно это приводит к вызову UncaughtExceptionHandler для исполнителя).

person Eric Anderson    schedule 08.08.2016

В ответе на стороне клиента (php) http://www.grpc.io/grpc/php/source-class-Grpc.UnaryCall.html#82

статус здесь будет иметь поля кода и сведений, которые будут определять код ответа и соответствующее сообщение, если оно установлено, как указано в ответе Эрика. На основании этого на клиенте может быть выполнена соответствующая обработка ошибок.

person Ronil Merchant    schedule 18.04.2017