Annotation Type Fallback
-
@Documented @Retention(RUNTIME) @Target(METHOD) @Inherited @InterceptorBinding public @interface Fallback
The fallback annotation to define the fallback handler class so that a failure can be handled properly. Below is the criteria:- If value is specified, use
FallbackHandler.handle(ExecutionContext)
on the specified handler to execute the fallback. - If fallbackMethod is specified, invoke the method specified by the fallbackMethod on the same class.
- If both are specified, the
FaultToleranceDefinitionException
must be thrown.
When a method returns and the Fallback policy is present, the following rules are applied:
- If the method returns normally (doesn't throw), the result is simply returned.
- Otherwise, if the thrown object is assignable to any value in the
skipOn()
parameter, the thrown object will be rethrown. - Otherwise, if the thrown object is assignable to any value in the
applyOn()
parameter, the Fallback policy, detailed above, will be applied. - Otherwise the thrown object will be rethrown.
Throwable
which is not anError
orException
, non-portable behavior results. - If value is specified, use
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description java.lang.Class<? extends java.lang.Throwable>[]
applyOn
The list of exception types which should trigger Fallbackjava.lang.String
fallbackMethod
Specify the method name to be fallbacked to.java.lang.Class<? extends java.lang.Throwable>[]
skipOn
The list of exception types which should not trigger Fallbackjava.lang.Class<? extends FallbackHandler<?>>
value
Specify the fallback class to be used.
-
-
-
Element Detail
-
value
java.lang.Class<? extends FallbackHandler<?>> value
Specify the fallback class to be used. An new instance of the fallback class is returned. The instance is unmanaged. The type parameter of the fallback class must be assignable to the return type of the annotated method. Otherwise,FaultToleranceDefinitionException
occurs.- Returns:
- the fallback class
- Default:
- org.eclipse.microprofile.faulttolerance.Fallback.DEFAULT.class
-
-
-
fallbackMethod
java.lang.String fallbackMethod
Specify the method name to be fallbacked to. This method belongs to the same class as the method to fallback. The method must have the exactly same arguments as the method being annotated. The method return type must be assignable to the return type of the method the fallback is for. Otherwise,FaultToleranceDefinitionException
must be thrown.- Returns:
- the local method to fallback to
- Default:
- ""
-
-
-
applyOn
java.lang.Class<? extends java.lang.Throwable>[] applyOn
The list of exception types which should trigger FallbackNote that if a method throws a
Throwable
which is not anError
orException
, non-portable behavior results.- Returns:
- the exception types which should trigger Fallback
- Default:
- {java.lang.Throwable.class}
-
-
-
skipOn
java.lang.Class<? extends java.lang.Throwable>[] skipOn
The list of exception types which should not trigger FallbackThis list takes priority over the types listed in
applyOn()
Note that if a method throws a
Throwable
which is not anError
orException
, non-portable behavior results.- Returns:
- the exception types which should not trigger Fallback
- Default:
- {}
-
-