【问题标题】:Validation and throwing an exception inside a Flux is not working验证并在 Flux 中抛出异常不起作用
【发布时间】:2021-03-15 09:14:14
【问题描述】:

我试图在try catch 中使用reactor.core.publisher.Flux 来验证list 的值,但是当map 抛出异常时,catch 根本不会捕获它。我真的不明白这里发生了什么。一些帮助将不胜感激。

这正是我想要做的:

 public Flux<Something> execute(final List<Line> lines) {
        try {
          return this.getFlux(lines)
              .map(line -> this.validateLine(line))//this throws my custom exception if the condition applies
              .map(line -> this.doSomething(line))
              .map(line -> this.doSomethingElse(line));

        } catch (myCustomException e) {
            return something;
        }
  }

我可以看到validate 方法运行良好并通过调试引发异常,但catch 似乎不起作用,我看不出有什么问题。

【问题讨论】:

  • 这真的与 java 流有关,而不是与 Flux 的反应管道有关吗?
  • 其实是的,这和Flux有关,我从来没有见过他们,我想了解他们是如何工作的

标签: java java-8 try-catch flux


【解决方案1】:

您需要在流的末尾应用一个终端操作。流被延迟评估。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    相关资源
    最近更新 更多