gpt4 book ai didi

java - 如何使用Reactor框架2.x在多线程映射/归约中捕获/检测异常?

转载 作者:行者123 更新时间:2023-12-03 13:12:23 25 4
gpt4 key购买 nike

我正在使用this answer的代码,并且运行顺利。
但是,如果引发异常,则调用者代码不会捕获该异常。

如何在 react 堆2.0流中捕获异常?
我想做的是:如果引发异常,则流处理必须停止。我需要在调用者线程(首先创建流的线程)中抛出Exception。

List<Map<String, Object>> data = readData(); 

Streams.from(data)
.flatMap(m -> Streams.just(m)
.dispatchOn(Environment.cachedDispatcher())
.map(ignored -> {throw new RuntimeException("kaboom!");}))
.buffer()
.consume(s -> System.out.println("s: " + s));
// the exception is not thrown and there is not opportunity to deal with it.

最佳答案

在Reactor中,您只需要包装异常并将其作为Flux.error()返回

然后,您可以使用onErrorXXX方法处理它们(例如onErrorResume)

看更多:

https://projectreactor.io/docs/core/release/reference/#error.handling

关于java - 如何使用Reactor框架2.x在多线程映射/归约中捕获/检测异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27976372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com