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 Summary
Modifier and TypeMethodDescriptionboolean
canHandle
(FlowExecutionException exception) Can this handler handle the given exception?void
handle
(FlowExecutionException exception, RequestControlContext context) Handle the exception in the context of the current request.
-
Method Details
-
canHandle
Can this handler handle the given exception?- Parameters:
exception
- the exception that occurred- Returns:
- true if yes, false if no
-
handle
Handle the exception in the context of the current request. An implementation is expected to transition the flow to a state usingRequestControlContext.execute(Transition)
.- Parameters:
exception
- the exception that occurredcontext
- the execution control context for this request
-