在rxjava 2中找不到OnErrorThrowable

时间:2017-01-12 04:26:21

标签: rx-java rx-java2

我正在将rxjava 1升级到rxjava 2.在rxjava 1中有OnErrorThrowable但在rxjava中找不到2.我可以在下面的代码中做什么来替换OnErrorThrowable?

static Observable<String> sampleObservable() {
    return Observable.defer(new Callable<ObservableSource<String>>() {
        @Override
        public ObservableSource<String> call() throws Exception {
            try {
                // Do some long running operation
                Thread.sleep(TimeUnit.SECONDS.toMillis(5));
            } catch (InterruptedException e) {
                throw OnErrorThrowable.from(e);
            }
            Log.d(TAG, "The sleep is over, now produce something");
            return Observable.just("one", "two", "three", "four", "five");
        }
    });
}

2 个答案:

答案 0 :(得分:2)

你可以返回Observable.error(e);而不是扔进你的阻挡区。

答案 1 :(得分:2)

在2.x中,您不必包装异常,因为所有功能类型都声明throws Exception

static Observable<String> sampleObservable() {
return Observable.defer(new Callable<ObservableSource<String>>() {
    @Override
    public ObservableSource<String> call() throws Exception {
        Thread.sleep(TimeUnit.SECONDS.toMillis(5));
        Log.d(TAG, "The sleep is over, now produce something");
        return Observable.just("one", "two", "three", "four", "five");
    }
});

}