异常处理反应
Exception Handling Reactive
如何使用 Mono.error(<Throwable>)
但从请求返回的正文附加信息?
- 是否有一个扩展
Throwable
的反应对象接受一个 Mono/Flux 对象,所以抛出的错误将等待主体被解释?
- 或者有没有办法将某种 'flag' 添加到现有的 Mono 对象上,使其立即失败(以规避
Throwable
的要求)
下面的示例场景:
import org.springframework.web.reactive.function.client.WebClient;
private someMethod() {
webClient.get().retrieve().onStatus(HttpStatus::isError, this::errorHandler)
}
private Mono<? extends Throwable> errorHandler(ClientResponse cr) {
Mono<String> body = cr.body(BodyExtractors.toMono(String.class));
...<do something here>...
return Mono.error(new WhateverException());
}
谢谢
return body.flatMap(str -> Mono.error(new WhateverException(str)));
如何使用 Mono.error(<Throwable>)
但从请求返回的正文附加信息?
- 是否有一个扩展
Throwable
的反应对象接受一个 Mono/Flux 对象,所以抛出的错误将等待主体被解释? - 或者有没有办法将某种 'flag' 添加到现有的 Mono 对象上,使其立即失败(以规避
Throwable
的要求)
下面的示例场景:
import org.springframework.web.reactive.function.client.WebClient;
private someMethod() {
webClient.get().retrieve().onStatus(HttpStatus::isError, this::errorHandler)
}
private Mono<? extends Throwable> errorHandler(ClientResponse cr) {
Mono<String> body = cr.body(BodyExtractors.toMono(String.class));
...<do something here>...
return Mono.error(new WhateverException());
}
谢谢
return body.flatMap(str -> Mono.error(new WhateverException(str)));