Package org.springframework.batch.repeat.exception

# Class LogOrRethrowExceptionHandler

java.lang.Object
org.springframework.batch.repeat.exception.LogOrRethrowExceptionHandler

All Implemented Interfaces:
  `ExceptionHandler`

public class LogOrRethrowExceptionHandler extends Object implements ExceptionHandler
Implementation of `ExceptionHandler` based on an `Classifier`. The classifier determines whether to log the exception or rethrow it. The keys in the classifier must be the same as the static enum in this class.

Author:
  Dave Syer

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static enum`
  `LogOrRethrowExceptionHandler.Level`
  Logging levels for the handler.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final org.apache.commons.logging.Log`
  `logger`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LogOrRethrowExceptionHandler()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `handleException(RepeatContext context, Throwable throwable)`
  Classify the throwables and decide whether to rethrow based on the result.
  `void`
  `setExceptionClassifier(org.springframework.classify.Classifier<Throwable,LogOrRethrowExceptionHandler.Level> exceptionClassifier)`
  Setter for the `Classifier` used by this handler.

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

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

- ## Field Details

  - ### logger

    protected final org.apache.commons.logging.Log logger

- ## Constructor Details

  - ### LogOrRethrowExceptionHandler

    public LogOrRethrowExceptionHandler()

- ## Method Details

  - ### setExceptionClassifier

    public void setExceptionClassifier(org.springframework.classify.Classifier<Throwable,LogOrRethrowExceptionHandler.Level> exceptionClassifier)
    Setter for the `Classifier` used by this handler. The default is to map all throwable instances to `LogOrRethrowExceptionHandler.Level.RETHROW`.
    Parameters:
      `exceptionClassifier` - the ExceptionClassifier to use

  - ### handleException

    public void handleException(RepeatContext context, Throwable throwable) throws Throwable
    Classify the throwables and decide whether to rethrow based on the result. The context is not used.
    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` - thrown if `exceptionClassifier` is classified as `LogOrRethrowExceptionHandler.Level.RETHROW`.
    See Also:
      - `ExceptionHandler.handleException(RepeatContext, Throwable)`