我应该将 "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.

之后