如何使用Retrofit和RxJava捕获HttpException?

时间:2019-04-02 08:29:27

标签: android retrofit rx-java retrofit2 rx-java2

我想捕获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语句。

出了什么问题?

0 个答案:

没有答案