@Override
public Observable<List<Itinerary>> itinerariesFromProvider(final FlightSpecification flightSpecification,
final String provider) {
final Map<String, Object> params = getQueryParams(flightSpecification);
return this.retrofitProviderService.itineraries(provider, params)
.concatMapIterable(itineraryDtoList -> itineraryDtoList)
.map(it -> {
logger.debug("Translating in thread: {}", Thread.currentThread().getName());
return itineraryTranslator.fromItineraryDtoToItinerary(it);
})
.toList()
.subscribeOn(Schedulers.io())
.doOnError(throwable -> new ProviderNotReachableException(format("For input string %s", provider), throwable))
.toObservable();
}
答案 0 :(得分:1)
您可以使用doOnError
来代替onErrorResumeNext
,它使用Throwable
作为输入(我们得到的onError
)作为函数,并返回{{ 1}}作为输出,使用此运算符,您可以使用Observable
将所需的异常映射到另一个异常:
Observable.error