如何解决Java Reactor Core:处理下游服务引发的异常
考虑以下代码:
class MyTestForExcHandling {
private Mono<Integer> thisOneFailsRight() {
return Mono.error(new NullPointerException("NPE!!!"));
}
private Mono<Integer> thisOneFails() {
throw new NullPointerException("NPE!!!");
}
@Test
public void testBadFailLogic() {
// This one would fail with an NPE
thisOneFails()
.onErrorResume(throwable -> Mono.just(1))
.block();
}
@Test
public void testGracefulFailLogic() {
// This one resumes on caught error
thisOneFailsRight()
.onErrorResume(throwable -> Mono.just(1))
.block();
}
}
testBadFailLogic
类似于一段具有多个下游调用的代码,可能会引发异常(不一定用Mono.error
包装),请考虑一下。现在,我的理解是doOnError
或onErrorResume
不会“捕获”这些错误。
似乎唯一可以实际确保testBadFailLogic
正常工作(在“反应性”范围内)的唯一方法是将所有可能的异常都包裹在try/catch
周围。但是我只是想知道是否也有应对这种情况的反应方式?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。