Spring / Spring Retry Interview Questions
How does the ExceptionClassifierRetryPolicy work?
ExceptionClassifierRetryPolicy allows you to map different exception types to different RetryPolicy instances. This is valuable when your retryable operation can fail with multiple exception types that require different retry strategies — for example, transient network errors should be retried several times, while resource not found errors should fail fast.
Configuration example:
Map<Class<? extends Throwable>, RetryPolicy> policyMap = new HashMap<>(); policyMap.put(IOException.class, new SimpleRetryPolicy(5)); policyMap.put(HttpServerErrorException.class, new SimpleRetryPolicy(3)); policyMap.put(IllegalArgumentException.class, new NeverRetryPolicy()); ExceptionClassifierRetryPolicy policy = new ExceptionClassifierRetryPolicy(); policy.setPolicyMap(policyMap); RetryTemplate template = new RetryTemplate(); template.setRetryPolicy(policy);
The classifier checks the thrown exception type and routes it to the matching sub-policy. If no exact match is found, it walks up the exception class hierarchy to find the nearest matching ancestor. If no match is found at all, the default policy (usually NeverRetryPolicy) is applied.
This policy is ideal when integrating with multiple downstream services in a single method, where the caller needs fine-grained control over which failures are transient and which are permanent.
More Related questions...