我应该将 "doOnError" 放在我的 webclient 调用中的什么位置?
Where do I place "doOnError" in my webclient call?
我有一个网络客户端调用,如下所示:-
return this.webClient.post()
.uri(url)
.accept(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromValue(request))
.retrieve()
.bodyToMono(Reponse.class)
.doOnError(err -> {
throw new UserDefinedException();
})
.block();
如果我在 bodyToMono/retreive/ 之前放置“doOnError()”等等会有什么不同吗..
将错误信号转换为自定义异常的预期方法是使用 onErrorMap
运算符:
return this.webClient.post()
.uri(url)
.accept(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromValue(request))
.retrieve()
.bodyToMono(Reponse.class)
.onErrorMap(err -> new UserDefinedException())
.block();
onErrorMap
运算符捕获任何 Mono
错误并将它们映射到自定义异常。
bodyToMono
,在成功案例中将链转换为 Mono
,因此它可能在 onErrorMap
.
之后
我有一个网络客户端调用,如下所示:-
return this.webClient.post()
.uri(url)
.accept(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromValue(request))
.retrieve()
.bodyToMono(Reponse.class)
.doOnError(err -> {
throw new UserDefinedException();
})
.block();
如果我在 bodyToMono/retreive/ 之前放置“doOnError()”等等会有什么不同吗..
将错误信号转换为自定义异常的预期方法是使用 onErrorMap
运算符:
return this.webClient.post()
.uri(url)
.accept(MediaType.APPLICATION_JSON)
.body(BodyInserters.fromValue(request))
.retrieve()
.bodyToMono(Reponse.class)
.onErrorMap(err -> new UserDefinedException())
.block();
onErrorMap
运算符捕获任何 Mono
错误并将它们映射到自定义异常。
bodyToMono
,在成功案例中将链转换为 Mono
,因此它可能在 onErrorMap
.