我想捕获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语句。
出了什么问题?