Package org.springframework.batch.core.step.item

# Class SimpleRetryExceptionHandler

java.lang.Object
org.springframework.retry.listener.RetryListenerSupport
org.springframework.batch.core.step.item.SimpleRetryExceptionHandler

All Implemented Interfaces:
  `ExceptionHandler`, `org.springframework.retry.RetryListener`

public class SimpleRetryExceptionHandler extends org.springframework.retry.listener.RetryListenerSupport implements ExceptionHandler
An `ExceptionHandler` that is aware of the retry context so that it can distinguish between a fatal exception and one that can be retried. Delegates the actual exception handling to another `ExceptionHandler`.

Author:
  Dave Syer

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SimpleRetryExceptionHandler(org.springframework.retry.RetryPolicy retryPolicy, ExceptionHandler exceptionHandler, Collection<Class<? extends Throwable>> fatalExceptionClasses)`
  Create an exception handler from its mandatory properties.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `<T, E extends Throwable>
  void`
  `close(org.springframework.retry.RetryContext context, org.springframework.retry.RetryCallback<T,E> callback, Throwable throwable)`
  If retry is exhausted set up some state in the context that can be used to signal that the exception should be handled.
  `void`
  `handleException(RepeatContext context, Throwable throwable)`
  Check if the exception is going to be retried, and veto the handling if it is.

  ### Methods inherited from class org.springframework.retry.listener.RetryListenerSupport

  `onError, open`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### SimpleRetryExceptionHandler

    public SimpleRetryExceptionHandler(org.springframework.retry.RetryPolicy retryPolicy, ExceptionHandler exceptionHandler, Collection<Class<? extends Throwable>> fatalExceptionClasses)
    Create an exception handler from its mandatory properties.
    Parameters:
      `retryPolicy` - the retry policy that will be under effect when an exception is encountered
      `exceptionHandler` - the delegate to use if an exception actually needs to be handled
      `fatalExceptionClasses` - exceptions

- ## Method Details

  - ### handleException

    public void handleException(RepeatContext context, Throwable throwable) throws Throwable
    Check if the exception is going to be retried, and veto the handling if it is. If retry is exhausted or the exception is on the fatal list, then handle using the delegate.
    Specified by:
      `handleException` in interface `ExceptionHandler`
    Parameters:
      `context` - the current `RepeatContext`. Can be used to store state (via attributes), for example to count the number of occurrences of a particular exception type and implement a threshold policy.
      `throwable` - an exception.
    Throws:
      `Throwable` - implementations are free to re-throw the exception
    See Also:
      - `ExceptionHandler.handleException(org.springframework.batch.repeat.RepeatContext, java.lang.Throwable)`

  - ### close

    public <T, E extends Throwable> void close(org.springframework.retry.RetryContext context, org.springframework.retry.RetryCallback<T,E> callback, Throwable throwable)
    If retry is exhausted set up some state in the context that can be used to signal that the exception should be handled.
    Specified by:
      `close` in interface `org.springframework.retry.RetryListener`
    Overrides:
      `close` in class `org.springframework.retry.listener.RetryListenerSupport`
    See Also:
      - `RetryListener.close(org.springframework.retry.RetryContext, org.springframework.retry.RetryCallback, java.lang.Throwable)`