Is there any comprehensive list of scenarios when a WebClientRequestException is thrown ?
As part of a Springboot project, there are several WebClientRequest exceptions I'm encountering like SSLException, ProxyConnectException, etc. To implement the retryLogic for the same, I need a comprehensive list, if available for which scenarios throw this Exception to ensure retry logic is needed for all of them.
A WebClientRequestException is thrown in a variety of scenarios when using Spring WebFlux's WebClient to perform HTTP requests. This exception is typically thrown during the execution of a request and when it is unsuccessfully and this exceptions that contain actual HTTP request data. It is a general-purpose exception related to problems that occur when trying to make an HTTP request with WebClient. Below are some common scenarios where a WebClientRequestException might be thrown:
Connection Issues
Invalid URL or URI
Request Execution Failures
This exception will be thrown on any unsuccessful request due to any general error cause. By comparing the Exception
from getCause() method you can identify the root cause
webClient.get()
.uri("http://invalid-url") // This will cause a URISyntaxException
.retrieve()
.bodyToMono(String.class)
.doOnError(e -> {
if (e instanceof WebClientRequestException) {
WebClientRequestException webClientException = (WebClientRequestException) e;
Throwable cause = webClientException.getCause();
if (cause instanceof URISyntaxException) {
System.err.println("Invalid URI: " + cause.getMessage());
} else if (cause instanceof ConnectException) {
System.err.println("Connection error: " + cause.getMessage());
} else if (cause instanceof UnknownHostException) {
System.err.println("DNS resolution error: " + cause.getMessage());
} else {
System.err.println("Other error: " + cause.getClass().getName());
}
}
})