0
在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