Как отловить HttpException с помощью Retrofit и RxJava? - PullRequest
0 голосов
/ 02 апреля 2019

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

Я использую Retrofit с RxJava 2. Я ловлю throwable, но это всегда идет в другом случае, а не в случае if.

Disposable disposable = agreementsRepository.getAgreementAppointments(agreementId, appointmentId)
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(
        agreementAppointment -> {
          if (Constants.APPOINTMENT_INITIAL.equals(appointmentType)) {
            view.displayInitialAppointmentInfo(agreementAppointment.getServiceAppointment());
          } else {
            view.displayRecurringAppointmentInfo(agreementAppointment.getServiceAppointment());
          }
        },
        throwable -> {
          if(throwable instanceof HttpException) {
            Log.d("TAG", "Http exception");
          } else {
            view.handleError(throwable);
          } }
    );

Сервер возвращает исключение HTTP 500, и я пытаюсь перехватить его с помощью throwable, но почему-то он не переходит к оператору if.

В чем проблема?

...