3
私はRxJavaを使い始めていますが、まだクリックしていないものがあります。doOnErrorは例外をキャッチしません
Integer[] items = {1, 2, 3, 0, 0, 4, 5, 6, 1};
Observable.from(items)
.map(this::invert)
.subscribe(i -> Log.d(LOG_TAG, "Inverted: " + i), t -> Log.d(LOG_TAG, "Error: " + t.getMessage()));
Integer[] items = {1, 2, 3, 0, 0, 4, 5, 6, 1};
Observable.from(items)
.map(this::invert)
.doOnError(t -> Log.d(LOG_TAG, "Error: " + t.getMessage()))
.doOnNext(i -> Log.d(LOG_TAG, "Inverted: " + i))
.subscribe();
invert
機能:
int invert(int i) {
return 1/i;
}
通常最初に実行し、例外がスローされますonError
が実行されます。しかし、一方では、2番目のメソッドは機能しません。したがって、例外は呼び出し元のメソッドまですべてスローされます。
2つのコードブロックの違いは何ですか?
注: '1/0'は' Error'としてトリガしますが、ここでは問題ではありません。 –