2017-01-12 10 views
1

rxjava 1からrxjava 2にアップグレードしています。rxjava 1にOnErrorThrowableがありますが、rxjava 2にはありません。OnErrorThrowableを置き換えるには次のコードで何ができますか?OnErrorThrowableがrxjavaに見つかりません2

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

、あなたはすべての機能タイプが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"); 
    } 
}); 

}

+0

ねえデビッド、何 'onErrorReturn()'のような例について、我々以前は 'OnErrorThrowable.from()'を使ってエラーを再スローしていましたか? – Saket

2

キャッチブロックを投げるのではなく、Observable.error(e);を返すことができます。 2.xで

関連する問題