Java 针对特定异常的反应流跳过筛选器

Java 针对特定异常的反应流跳过筛选器,java,spring-webflux,Java,Spring Webflux,假设我有一个这样的反应流: Flux-apps=this.getApps(arg) .filter(res->firstFilter()) .filter(res->secondFilter()) 并假设getApps()调用返回UnsupportedOperationException。当引发此异常而不解析整个链时,如何跳过firstFilter并返回secondFilter的默认vault 请注意,UnsupportedOperationException应该是导致跳过firstFilte

假设我有一个这样的反应流:

Flux-apps=this.getApps(arg)
.filter(res->firstFilter())
.filter(res->secondFilter())
并假设
getApps()
调用返回
UnsupportedOperationException
。当引发此异常而不解析整个链时,如何跳过
firstFilter
并返回
secondFilter
的默认vault

请注意,
UnsupportedOperationException
应该是导致跳过
firstFilter
的唯一异常

例如,可以使用
onerrorrenue
onErrorResume
作为回退,但它们将完成整个链,并且只有
onErrorResume
可以区分异常类型。

Stream=null//你的类型在这里
Stream<> stream = null; //your type here
try{    
  stream = this.getApps(arg).filter( res -> firstFilter());
}catch (UnsupportedOperationException ex) {
  stream = Stream.of("1","2","3"); // you default provided stream of strings for example
}finally {
  stream.filter( res -> secondFilter())
}
试试{ stream=this.getApps(arg.filter(res->firstFilter()); }捕获(不支持操作异常例外){ stream=stream.of(“1”、“2”、“3”);//例如,默认提供的字符串流 }最后{ stream.filter(res->secondFilter()) }
那么您的意思是,当getApps()抛出异常时,您希望继续使用要提供给第二个筛选器的自定义设置流?当第一个筛选器抛出异常时,这更有意义,但我没有理解!假设getApps()返回该特定异常,我希望有一个错误处理逻辑,如果引发该异常,可以跳过第一个筛选器,并为链的其余部分提供默认值。如果getApps()返回单声道流,这是否可行?因为会立即引发异常吗?@Chaos如果getApps()返回一个流,它将首先在1stFilter上传递,然后在2ndFilter上传递。我觉得很傻,不知道为什么我不这么简单地想到它!我只是想用streams来解决这个问题。