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 usingExceptionDepthComparatorand the top match is returned.- Since:
- 4.0
- Author:
- Rossen Stoyanchev, Juergen Hoeller
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractExceptionHandlerMethodResolver(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.booleanhasExceptionMappings()Whether the contained type has any exception mappings.MethodresolveMethod(Exception exception)Find aMethodto handle the given exception.MethodresolveMethodByExceptionType(Class<? extends Throwable> exceptionType)Find aMethodto 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
public Method resolveMethod(Exception exception)
Find aMethodto handle the given exception. UseExceptionDepthComparatorif more than one match is found.- Parameters:
exception- the exception- Returns:
- a Method to handle the exception, or
nullif none found
resolveMethodByExceptionType
public Method resolveMethodByExceptionType(Class<? extends Throwable> exceptionType)
Find aMethodto handle the given exception type. This can be useful if anExceptioninstance is not available (e.g. for tools).- Parameters:
exceptionType- the exception type- Returns:
- a Method to handle the exception, or
nullif none found - Since:
- 4.3.1