Class CatchAndRethrowClosure<E>

java.lang.Object
org.apache.commons.collections4.functors.CatchAndRethrowClosure<E>
All Implemented Interfaces:
Consumer<E>, 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

  • 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.