订户(消费者<Object>)反应器中的错误


public static void main(String[] args) {
Flux.just(1,2,3)
.onErrorContinue((err,i)-> System.out.println(err+" "+i))
.subscribe(i->{
System.out.println(10/(2-i));
}, System.out::println);
}

错误是在使用者函数内部生成的,如何在不取消订阅的情况下处理此类错误。

输出:

10
java.lang.ArithmeticException: / by zero
Process finished with exit code 0

最后一个订阅是整个管道中的最后一步,但实际上在Reactor的最新版本中,基于lambda的订阅程序将在onNext处理程序中捕获异常,并将其传播到onError处理程序,这意味着取消。这是库可以进行的最佳默认选择。

如果你不想这样,那么你需要在onNext处理程序中添加try/catch,就这样

最新更新