Class CatchAndRethrowClosure<E>

java.lang.Object
org.apache.commons.collections4.functors.CatchAndRethrowClosure<E>
All Implemented Interfaces:
Closure<E>

public abstract class CatchAndRethrowClosure<E> extends Object implements Closure<E>
Closure that catches any checked exception and re-throws it as a FunctorException runtime exception. Example usage:
// Create a catch and re-throw closure via anonymous subclass
CatchAndRethrowClosure<String> writer = new ThrowingClosure() {
    private java.io.Writer out = // some writer

    protected void executeAndThrow(String input) throws IOException {
        out.write(input); // throwing of IOException allowed
    }
};

// use catch and re-throw closure
java.util.List<String> strList = // some list
try {
    CollectionUtils.forAllDo(strList, writer);
} catch (FunctorException ex) {
    Throwable originalError = ex.getCause();
    // handle error
}
Since:
4.0
  • Constructor Details

    • CatchAndRethrowClosure

      public CatchAndRethrowClosure()
  • Method Details

    • execute

      public void execute(E input)
      Execute this closure on the specified input object.
      Specified by:
      execute in interface Closure<E>
      Parameters:
      input - the input to execute on
      Throws:
      FunctorException - (runtime) if the closure execution resulted in a checked exception.
    • executeAndThrow

      protected abstract void executeAndThrow(E input) throws Throwable
      Execute this closure on the specified input object.
      Parameters:
      input - the input to execute on
      Throws:
      Throwable - if the closure execution resulted in a checked exception.