问题描述
我必须在 Spring WebFlux 链中处理不同的异常。有一个 WebClient
并且我需要有逻辑,它看起来像下面使用命令式风格的代码:
try {
} catch (WebClientResponseException e) {
// flow 1
} catch (TimeoutException e) {
// flow 2
} catch (Exception e) {
// flow 3
}
问题是在构建反应链时,我只能有一个异常类或谓词:
...
.onErrorMap(WebClientResponseException.class,e -> {...})
.onErrorMap(Exception.class,e -> {...})
// will also be called for WebClientResponseException,which is not expected
在这些情况下使用 instanceof
是一种常见的做法吗?类似的东西:
...
.onErrorMap(WebClientResponseException.class,e -> {...})
.onErrorMap(e -> !(e instanceof WebClientResponseException),which is not expected
或
.onErrorMap(e -> {
if (e instanceof WebClientResponseException) {
// flow 1
} else if (e instanceof TimeoutException) {
// flow 2
} else {
// flow 3
}
})
我相信常规(非响应式)java instanceof
被认为是一种不好的做法,但是我认为响应式流没有更好的方法。
请分享您的想法
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)