验证并在 Flux 中抛出异常不起作用
Posted
技术标签:
【中文标题】验证并在 Flux 中抛出异常不起作用【英文标题】:Validation and throwing an exception inside a Flux is not working 【发布时间】: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
有关,我从来没有见过他们,我想了解他们是如何工作的
【参考方案1】:
您需要在流的末尾应用一个终端操作。流被延迟评估。
【讨论】:
以上是关于验证并在 Flux 中抛出异常不起作用的主要内容,如果未能解决你的问题,请参考以下文章
捕获 AuthenticationProvider 中抛出的异常