Spring boot ParallelFlux doOnNext如何处理异常

Spring boot ParallelFlux doOnNext如何处理异常,spring-boot,project-reactor,reactor,Spring Boot,Project Reactor,Reactor,在我的项目中,我有: ParallelFlux<Device> flux = Flux.fromIterable(children) .delayElements(Duration.ofMillis(10)) .parallel(18) .runOn(Schedulers.elastic(), 10) .doOnNext(c -> recursiveV

在我的项目中,我有:

ParallelFlux<Device> flux = Flux.fromIterable(children)
                .delayElements(Duration.ofMillis(10))
                .parallel(18)
                .runOn(Schedulers.elastic(), 10)
                .doOnNext(c -> recursiveValidationThroughoutChildren(c, tracker)
                });
我不明白的是如何处理最后一个方法引发的异常。我希望将异常传播到ParallelFlux之外。
可能吗?正确的处理方法是什么?

我遵循了@Rozart建议的链接,但我无法应用所解释的解决方案。我不得不改变一下:

ParallelFlux<Device> flux = Flux.fromIterable(children)
                .delayElements(Duration.ofMillis(10))
                .parallel(18)
                .runOn(Schedulers.elastic(), 10)
                .doOnNext(child -> {
                    try {
                        recursiveValidationThroughoutChildren(child, tracker);
                    } catch (Exception ex) {
                        Flux.error(ex);
                    }
                });
ParallelFlux通量=通量.fromIterable(子项)
.延迟要素(持续时间:百万(10))
.平行(18)
.runOn(Schedulers.elastic(),10)
.doOnNext(儿童->{
试一试{
递归验证通过子对象(子对象、跟踪器);
}捕获(例外情况除外){
流量误差(ex);
}
});
之所以需要更改,是因为ParallelFlux不支持“handle”方法,所以我必须添加一个try-catch,并使用Flux.error重新启动异常。
我不知道这是否是一个好的做法,但这是我让它起作用的唯一方法。

我相信你应该能够在这里找到你问题的答案:我同意@Rozart的观点-但如果不是,请告诉我们为什么它不能解决问题,这样我们就可以避免将它作为一个复制品关闭:-)
ParallelFlux<Device> flux = Flux.fromIterable(children)
                .delayElements(Duration.ofMillis(10))
                .parallel(18)
                .runOn(Schedulers.elastic(), 10)
                .doOnNext(child -> {
                    try {
                        recursiveValidationThroughoutChildren(child, tracker);
                    } catch (Exception ex) {
                        Flux.error(ex);
                    }
                });