org.springframework.web.servlet.handler

## 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

### Field Summary

### Fields inherited from class org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver

`logger`

### Fields inherited from interface org.springframework.core.Ordered

`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

### Constructor Summary

Constructors
Constructor and Description
`AbstractHandlerMethodExceptionResolver()`

### Method Summary

Methods
`protected ModelAndView` `doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler, 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.
`protected abstract ModelAndView` `doResolveHandlerMethodException(HttpServletRequest request, HttpServletResponse response, 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.
`protected boolean` `shouldApplyTo(HttpServletRequest request, Object handler)` Checks if the handler is a `HandlerMethod` and then delegates to the base class implementation of `shouldApplyTo(HttpServletRequest, Object)` passing the bean of the `HandlerMethod`.

### Methods inherited from class org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver

`buildLogMessage, getOrder, logException, prepareResponse, preventCaching, resolveException, setMappedHandlerClasses, setMappedHandlers, setOrder, setPreventResponseCaching, setWarnLogCategory`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### AbstractHandlerMethodExceptionResolver

    public AbstractHandlerMethodExceptionResolver()

### Method Detail

#### shouldApplyTo

    protected boolean shouldApplyTo(HttpServletRequest request,
                        Object handler)

Checks if the handler is a `HandlerMethod` and then delegates to the base class implementation of `shouldApplyTo(HttpServletRequest, Object)` passing the bean of the `HandlerMethod`. 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:
  `AbstractHandlerExceptionResolver.setMappedHandlers(java.util.Set)`, `AbstractHandlerExceptionResolver.setMappedHandlerClasses(java.lang.Class[])`

#### doResolveException

    protected final ModelAndView doResolveException(HttpServletRequest request,
                                  HttpServletResponse response,
                                  Object handler,
                                  Exception ex)

Description copied from class: `AbstractHandlerExceptionResolver`
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.

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

#### doResolveHandlerMethodException

    protected abstract ModelAndView doResolveHandlerMethodException(HttpServletRequest request,
                                               HttpServletResponse response,
                                               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