Class ExceptionHandlerMethodResolver
- java.lang.Object
- org.springframework.web.method.annotation.ExceptionHandlerMethodResolver
public class ExceptionHandlerMethodResolver extends Object
Discovers @ExceptionHandler methods in a given class, including all of its superclasses, and helps to resolve a givenException
to the exception types supported by a givenMethod
.- Since:
- 3.1
- Author:
- Rossen Stoyanchev, Juergen Hoeller
Field Summary
Fields Modifier and Type Field Description static ReflectionUtils.MethodFilter
EXCEPTION_HANDLER_METHODS
A filter for selecting@ExceptionHandler
methods.
Constructor Summary
Constructors Constructor Description ExceptionHandlerMethodResolver(Class<?> handlerType)
A constructor that findsExceptionHandler
methods in the given type.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
detectAnnotationExceptionMappings(Method method, List<Class<? extends Throwable>> result)
boolean
hasExceptionMappings()
Whether the contained type has any exception mappings.Method
resolveMethod(Exception exception)
Find aMethod
to handle the given exception.Method
resolveMethodByExceptionType(Class<? extends Throwable> exceptionType)
Find aMethod
to handle the given exception type.
Field Detail
EXCEPTION_HANDLER_METHODS
public static final ReflectionUtils.MethodFilter EXCEPTION_HANDLER_METHODS
A filter for selecting@ExceptionHandler
methods.
Constructor Detail
ExceptionHandlerMethodResolver
public ExceptionHandlerMethodResolver(Class<?> handlerType)
A constructor that findsExceptionHandler
methods in the given type.- Parameters:
handlerType
- the type to introspect
Method Detail
detectAnnotationExceptionMappings
protected void detectAnnotationExceptionMappings(Method method, List<Class<? extends Throwable>> result)
hasExceptionMappings
public boolean hasExceptionMappings()
Whether the contained type has any exception mappings.
resolveMethod
public Method resolveMethod(Exception 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
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