- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
感觉这应该很简单,所以我可能会遗漏一些明显的东西。我有一个简单的示例案例,其中出现了 Mono 错误,并且我希望使用通用处理程序进行特定于异常类的处理。
Mono.error(new RuntimeException())
.doOnError(RuntimeException.class, e -> System.out.println("Caught RuntimeException"))
.doOnError(Throwable.class, e -> System.out.println("Caught Throwable"))
.block();
output: Caught RuntimeException
Caught Throwable
问题是两个消费者都会被调用(带有 RuntimeException 的消费者和带有 Throwable 的通用消费者)。如果已经调用了更具体的方法,是否有一种(干净的)方法可以避免调用通用方法?
最佳答案
如果有办法从错误中恢复,请使用 onErrorResume函数代替。
Mono.error(new RuntimeException())
.flatMap(k -> callExternalService(k)
.onErrorResume(RuntimeException.class, this::recoverFromRuntimeExeption)
.onErrorResume(Throwable.class, this::recoverFromThrowable)
);
这样您就可以将 Mono 的执行路径从错误更改为成功,并且后续的 doOnError
将不会被调用。
关于java - 如何在 Reactor 中的异常类特定异常之后有一个通用的 doOnError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52723194/
我有pay方法,我应该在其中调用initiatePayment,并且onSuccess我应该调用confirmPayment。如果两个调用中的任何一个出现异常,它应该发出异常 public Singl
我刚刚开始使用 RxJava,但可能还没有点击。 1. Integer[] items = {1, 2, 3, 0, 0, 4, 5, 6, 1}; Observable.from(items)
在我们的项目中,如果发生不好的事情,我们有某种后备措施,并由 doOnError 处理。我唯一担心的是 doOnError 运算符可能没有以正确的方式使用。那么让我们看一下下一个示例: callSer
我尝试使用以下代码 initLocalSettingsIfNeed() .andThen(initGlobalSettingsIfNeed(co
感觉这应该很简单,所以我可能会遗漏一些明显的东西。我有一个简单的示例案例,其中出现了 Mono 错误,并且我希望使用通用处理程序进行特定于异常类的处理。 Mono.error(new Runt
在spring项目reactor中,onErrorResume和doOnError有什么区别?我什么时候应该分别使用它们? 最佳答案 onErrorResume:当上游发生异常时提供回退流。 doOn
我做了这些单元测试,结果根本不是我预期的: // This one outputs "subscribe.onError" @Test public void observable_doOnError
我有以下情况:我需要从数据库获取数据。当我尝试进入 UI 线程时(这是我的做法): List movies = new ArrayList<>(); for (MovieEntity movie:mo
我有以下代码。它基本上是尝试将特定 SQLite 表中的所有数据发送到 DynamoDB: Observable.create(new Observable.OnSubscribe() { @
我在使用 RxJava2(2.2.2 版)时遇到了问题。请参阅下面的代码: client.get("/iic-router/health").rxSend() .doOnError(err -
如果我正确理解错误和异常之间的区别,这些函数不应该命名为 doOnException() 或 Mono.exception(new Exception("...")) 等? 这里没有任何功能,只是一个
我有一个使用 spring webflux 和 reactor 的休息 Controller ,我正在为 Controller 编写单元测试。请在下面找到代码片段并帮助我编写单元测试方法来测试 .do
我是响应式编程的新手,因此需要一些帮助。我有下面的代码,我不喜欢两种不同的错误处理方法。 我想用一种方法将它们结合起来。正确的做法是什么? mono.doOnError(error -> logErr
在我的上一个项目中,我使用了 rxJava,我意识到 observable.doOnError('onErrorCallback').subscribe(action) 和 observable.su
我正在尝试实现 Reactor Subscriber Context ( http://projectreactor.io/docs/core/release/reference/#context )
谁能解释一下为什么要写这样的代码: networApi.getList() .subscribeOn(Schedulers.newThread())
我是一名优秀的程序员,十分优秀!