Class AbstractHandlerMethodExceptionResolver

java.lang.Object
org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver
org.springframework.web.servlet.handler.AbstractHandlerMethodExceptionResolver
All Implemented Interfaces:
Ordered, HandlerExceptionResolver
Direct Known Subclasses:
ExceptionHandlerExceptionResolver

public abstract class AbstractHandlerMethodExceptionResolver extends AbstractHandlerExceptionResolver
Abstract base class for HandlerExceptionResolver implementations that support handling exceptions from handlers of type HandlerMethod.
Since:
3.1
Author:
Rossen Stoyanchev, Juergen Hoeller
  • Constructor Details

    • AbstractHandlerMethodExceptionResolver

      public AbstractHandlerMethodExceptionResolver()
  • Method Details

    • shouldApplyTo

      protected boolean shouldApplyTo(HttpServletRequest request, @Nullable Object handler)
      Checks if the handler is a HandlerMethod or the resolver has global exception handlers and then delegates to the base class implementation of #shouldApplyTo passing the bean of the HandlerMethod if necessary. Otherwise, returns false.
      Overrides:
      shouldApplyTo in class AbstractHandlerExceptionResolver
      Parameters:
      request - current HTTP request
      handler - the executed handler, or null if none chosen at the time of the exception (for example, if multipart resolution failed)
      Returns:
      whether this resolved should proceed with resolving the exception for the given request and handler
      See Also:
    • hasGlobalExceptionHandlers

      protected boolean hasGlobalExceptionHandlers()
      Whether this resolver has global exception handlers, for example, not declared in the same class as the HandlerMethod that raised the exception and therefore can apply to any handler.
      Since:
      5.3
    • doResolveException

      @Nullable protected final ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, @Nullable Object handler, Exception ex)
      Description copied from class: AbstractHandlerExceptionResolver
      Actually resolve the given exception that got thrown during handler execution, returning a ModelAndView that represents a specific error page if appropriate.

      May be overridden in subclasses, in order to apply specific exception checks. Note that this template method will be invoked after checking whether this resolver applies ("mappedHandlers" etc), so an implementation may simply proceed with its actual exception handling.

      Specified by:
      doResolveException in class AbstractHandlerExceptionResolver
      Parameters:
      request - current HTTP request
      response - current HTTP response
      handler - the executed handler, or null if none chosen at the time of the exception (for example, if multipart resolution failed)
      ex - the exception that got thrown during handler execution
      Returns:
      a corresponding ModelAndView to forward to, or null for default processing in the resolution chain
    • doResolveHandlerMethodException

      @Nullable protected abstract ModelAndView doResolveHandlerMethodException(HttpServletRequest request, HttpServletResponse response, @Nullable HandlerMethod handlerMethod, Exception ex)
      Actually resolve the given exception that got thrown during on handler execution, returning a ModelAndView that represents a specific error page if appropriate.

      May be overridden in subclasses, in order to apply specific exception checks. Note that this template method will be invoked after checking whether this resolved applies ("mappedHandlers" etc), so an implementation may simply proceed with its actual exception handling.

      Parameters:
      request - current HTTP request
      response - current HTTP response
      handlerMethod - the executed handler method, or null if none chosen at the time of the exception (for example, if multipart resolution failed)
      ex - the exception that got thrown during handler execution
      Returns:
      a corresponding ModelAndView to forward to, or null for default processing