假设我有一个像这样的反应流:
Flux<App> apps = this.getApps(arg)
.filter( res -> firstFilter())
.filter( res -> secondFilter())
并假设 getApps()
调用返回 UnsupportedOperationException
。当引发此异常而不解析整个链时,如何跳过 firstFilter
并返回 secondFilter
的默认保险库?
请注意,UnsupportedOperationException
应该是导致 firstFilter
被跳过的唯一例外。
例如,可以使用 onErrorReturn
或 onErrorResume
作为回退,但它们会完成整个链,并且只有 onErrorResume
可以区分异常类型。
答案 0 :(得分:-1)
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())
}