Class AbstractExceptionHandlerMethodResolver
- java.lang.Object
- org.springframework.messaging.handler.invocation.AbstractExceptionHandlerMethodResolver
- Direct Known Subclasses:
AnnotationExceptionHandlerMethodResolver
public abstract class AbstractExceptionHandlerMethodResolver extends Object
Cache exception handling method mappings and provide options to look up a method that should handle an exception. If multiple methods match, they are sorted usingExceptionDepthComparator
and the top match is returned.- Since:
- 4.0
- Author:
- Rossen Stoyanchev, Juergen Hoeller
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractExceptionHandlerMethodResolver(Map<Class<? extends Throwable>,Method> mappedMethods)
Protected constructor accepting exception-to-method mappings.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static List<Class<? extends Throwable>>
getExceptionsFromMethodSignature(Method method)
Extract the exceptions this method handles.This implementation looks for sub-classes of Throwable in the method signature.boolean
hasExceptionMappings()
Whether the contained type has any exception mappings.Method
resolveMethod(Throwable exception)
Find aMethod
to handle the given exception.Method
resolveMethodByExceptionType(Class<? extends Throwable> exceptionType)
Find aMethod
to handle the given exception type.
Constructor Detail
AbstractExceptionHandlerMethodResolver
protected AbstractExceptionHandlerMethodResolver(Map<Class<? extends Throwable>,Method> mappedMethods)
Protected constructor accepting exception-to-method mappings.
Method Detail
getExceptionsFromMethodSignature
protected static List<Class<? extends Throwable>> getExceptionsFromMethodSignature(Method method)
Extract the exceptions this method handles.This implementation looks for sub-classes of Throwable in the method signature. The method is static to ensure safe use from sub-class constructors.
hasExceptionMappings
public boolean hasExceptionMappings()
Whether the contained type has any exception mappings.
resolveMethod
@Nullable public Method resolveMethod(Throwable exception)
Find aMethod
to handle the given exception. UseExceptionDepthComparator
if more than one match is found.- Parameters:
exception
- the exception- Returns:
- a Method to handle the exception, or
null
if none found
resolveMethodByExceptionType
@Nullable public Method resolveMethodByExceptionType(Class<? extends Throwable> exceptionType)
Find aMethod
to handle the given exception type. This can be useful if anException
instance is not available (e.g. for tools).- Parameters:
exceptionType
- the exception type- Returns:
- a Method to handle the exception, or
null
if none found - Since:
- 4.3.1