Interface FlowExecutionExceptionHandler

All Known Implementing Classes:
TransitionExecutingFlowExecutionExceptionHandler

public interface FlowExecutionExceptionHandler
A strategy for handling an exception that occurs at runtime during an active flow execution. Note: special care should be taken when implementing custom flow execution exception handlers. Exception handlers are like Transitions in that they direct flow control when exceptions occur. They are more complex than Actions, which can only execute behaviors and return results that drive flow control. For this reason, if implemented incorrectly, a FlowExecutionHandler can leave a flow execution in an invalid state, which can render the flow execution unusable or its future use undefined. For example, if an exception thrown at flow session startup gets routed to an exception handler, the handler must take responsibility for ensuring the flow execution returns control to the caller in a consistent state. Concretely, this means the exception handler must transition the flow to its start state. The handler should not simply return leaving the flow with no current state set. Note: Because flow execution handlers are more difficult to implement correctly, consider catching exceptions in your web flow action code and returning result events that drive standard transitions. Alternatively, consider use of the existing TransitionExecutingFlowExecutionExceptionHandler which illustrates the proper way to implement an exception handler.
Author:
Keith Donald
  • Method Details

    • canHandle

      boolean canHandle(FlowExecutionException exception)
      Can this handler handle the given exception?
      Parameters:
      exception - the exception that occurred
      Returns:
      true if yes, false if no
    • handle

      void handle(FlowExecutionException exception, RequestControlContext context)
      Handle the exception in the context of the current request. An implementation is expected to transition the flow to a state using RequestControlContext.execute(Transition).
      Parameters:
      exception - the exception that occurred
      context - the execution control context for this request