org.springframework.web.method.annotation
Class ExceptionHandlerMethodResolver

java.lang.Object
  extended by org.springframework.web.method.annotation.ExceptionHandlerMethodResolver

public class ExceptionHandlerMethodResolver
extends Object

Given a set of @ExceptionHandler methods at initialization, finds the best matching method mapped to an exception at runtime.

Exception mappings are extracted from the method @ExceptionHandler annotation or by looking for Throwable method arguments.

Since:
3.1
Author:
Rossen Stoyanchev

Field Summary
static ReflectionUtils.MethodFilter EXCEPTION_HANDLER_METHODS
          A filter for selecting @ExceptionHandler methods.
 
Constructor Summary
ExceptionHandlerMethodResolver(Class<?> handlerType)
          A constructor that finds ExceptionHandler methods in a handler.
 
Method Summary
 Method resolveMethod(Exception exception)
          Find a method to handle the given exception.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 finds ExceptionHandler methods in a handler.

Parameters:
handlerType - the handler to inspect for exception handler methods.
Throws:
IllegalStateException - If an exception type is mapped to two methods.
IllegalArgumentException - If an @ExceptionHandler method is not mapped to any exceptions.
Method Detail

resolveMethod

public Method resolveMethod(Exception exception)
Find a method to handle the given exception. If more than one match is found, the best match is selected via ExceptionDepthComparator.

Parameters:
exception - the exception
Returns:
an @ExceptionHandler method, or null