обработка ошибок grpc в перехватчиках

#flutter #grpc

Вопрос:

Я использую grpc в трепете. Мой вопрос заключается в том, как я могу обрабатывать ошибки GRPC с помощью перехватчиков. Моя цель-обрабатывать все ошибки в одном и том же месте.

Я был бы очень признателен вам за помощь.

Ответ №1:

Вы можете реализовать свой собственный перехватчик следующим образом:

 class MyInterceptor implements ClientInterceptor {
  MyInterceptor();

  @override
  ResponseFuture<R> interceptUnary<Q, R>(ClientMethod<Q, R> method, Q request,
      CallOptions options, ClientUnaryInvoker<Q, R> invoker) {
   
    final response = invoker(method, request, options)
      ..catchError((e) async {
        print('handle errors here $e');
      });

    return response;
  }

  @override
  ResponseStream<R> interceptStreaming<Q, R>(
      ClientMethod<Q, R> method,
      Stream<Q> requests,
      CallOptions options,
      ClientStreamingInvoker<Q, R> invoker) {
    return invoker(method, requests, options);
  }
}