reference guideのエラー処理セクションで、エラー処理オペレータでエラーが処理されても、元のシーケンスが終了することに注意してください。ストリームのエラーが値に置き換えられ、元のシーケンスが続行されるなど、エラーを処理する方法はありますか?元のシーケンスが終了しないようにエラーを処理する方法はありますか?
"エラー処理オペレータについて学ぶ前に、反応シーケンスのエラーはターミナルイベントであることに注意する必要があります。エラー処理オペレータが使用されても、続行するが、むしろonErrorシグナルを新しいシーケンス(フォールバックシグナル)の開始に変換するので、それは上流の終了シーケンスを置き換えます。
ストリームにいくつかの不良要素しかない状況(私のユースケースを含む)が見えます。そのためにストリーム全体を終了したくない場合があります。
たとえば、次のコードでは、n = 2とすると悪いケースを想定しています。ストリームを正常に処理し、ストリームを終了しないといけません。私はここで何か基本的なものを欠いているかもしれない。
Flux.interval(Duration.ofSeconds(2))
.map(n -> {if (n ==2) throw new IllegalArgumentException(); else {return "Successful-n";}})
.onErrorReturn("Errored")
.doOnNext(n -> log("Processed " + n))
.blockLast();
ありがとうございます。これは実用的な手段を提供するかもしれませんが、私が求めているのは、新しいシーケンスを購読する必要がない方法です。私はちょっとしたエラーを処理し、元のシーケンスを続行したいだけです。 – Gaurav