【发布时间】:2020-12-16 23:08:50
【问题描述】:
我的反应链中有一些可以引发异常的方法。如果发生异常 - 我不想继续执行链,并且我想记录 - 究竟是什么动作引发了异常。
我写了一个代码,看起来像这样:
Mono<Void> mono = Mono.just(10)
.map(a -> action1(a))
.doOnError((t) -> System.out.println("action 1 threw an exception"))
.onErrorStop()
.map(a -> action2(a))
.doOnError((t) -> System.out.println("action 2 threw an exception"))
.then();
mono.subscribe();
但是当action1 抛出异常时 - 我得到以下输出:
action 1 threw an exception
action 2 threw an exception
这不是我所期望的
【问题讨论】:
-
错误通过反应链传播。如果您只需要这些日志来获得正确的堆栈跟踪,请查看参考中的调试部分:projectreactor.io/docs/core/release/reference/#debugging
标签: java project-reactor reactive