Class SimpleRetryExceptionHandler

java.lang.Object
org.springframework.batch.core.step.item.SimpleRetryExceptionHandler
All Implemented Interfaces:
ExceptionHandler, org.springframework.retry.RetryListener

public class SimpleRetryExceptionHandler extends Object implements org.springframework.retry.RetryListener, 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
    Check if the exception is going to be retried, and veto the handling if it is.

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface org.springframework.retry.RetryListener

    onError, onSuccess, open
  • 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:
    • 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
      See Also:
      • RetryListener.close(org.springframework.retry.RetryContext, org.springframework.retry.RetryCallback, java.lang.Throwable)