public class DefaultExceptionPolicyStrategy extends Object implements ExceptionPolicyStrategy
OnExceptionDefinition
that should
handle the thrown exception.
Selection strategy:
createExceptionIterator(Throwable)
provides the Iterator used for the walking.filter(org.apache.camel.model.OnExceptionDefinition, Class, Throwable)
method.
By default the filter uses instanceof test.OnExceptionDefinition
has a when defined with an expression the type is also matches against
the current exchange using the matchesWhen(org.apache.camel.model.OnExceptionDefinition, org.apache.camel.Exchange)
method. This can be used to for more fine grained matching, so you can e.g. define multiple sets of
exception types with the same exception class(es) but have a predicate attached to select which to select at runtime.Constructor and Description |
---|
DefaultExceptionPolicyStrategy() |
Modifier and Type | Method and Description |
---|---|
protected Iterator<Throwable> |
createExceptionIterator(Throwable exception)
Strategy method creating the iterator to walk the exception in the order Camel should use
for find the
OnExceptionDefinition should be used. |
protected boolean |
filter(OnExceptionDefinition type,
Class<?> exceptionClass,
Throwable exception)
Strategy to filter the given type exception class with the thrown exception
|
OnExceptionDefinition |
getExceptionPolicy(Map<ExceptionPolicyKey,OnExceptionDefinition> exceptionPolicies,
Exchange exchange,
Throwable exception)
Resolves the
OnExceptionDefinition that should handle the thrown exception. |
protected boolean |
matchesWhen(OnExceptionDefinition definition,
Exchange exchange)
Strategy method for matching the exception type with the current exchange.
|
public DefaultExceptionPolicyStrategy()
public OnExceptionDefinition getExceptionPolicy(Map<ExceptionPolicyKey,OnExceptionDefinition> exceptionPolicies, Exchange exchange, Throwable exception)
ExceptionPolicyStrategy
OnExceptionDefinition
that should handle the thrown exception.getExceptionPolicy
in interface ExceptionPolicyStrategy
exceptionPolicies
- the configured exception policies to resolve fromexchange
- the exchangeexception
- the exception that was thrownprotected boolean filter(OnExceptionDefinition type, Class<?> exceptionClass, Throwable exception)
type
- the exception typeexceptionClass
- the current exception class for testingexception
- the thrown exceptionprotected boolean matchesWhen(OnExceptionDefinition definition, Exchange exchange)
definition
- the exception definitionexchange
- the current Exchange
protected Iterator<Throwable> createExceptionIterator(Throwable exception)
OnExceptionDefinition
should be used.
The default iterator will walk from the bottom upwards
(the last caused by going upwards to the exception)exception
- the exceptionApache Camel