Package 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:
  `org.springframework.core.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

## 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
Description
`AbstractHandlerMethodExceptionResolver()`

## Method Summary

Modifier and Type
Method
Description
`protected final ModelAndView`
`doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)`
Actually resolve the given exception that got thrown during handler execution, returning a `ModelAndView` that represents a specific error page if appropriate.
`protected abstract ModelAndView`
`doResolveHandlerMethodException(HttpServletRequest request, HttpServletResponse response, org.springframework.web.method.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`
`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.
`protected boolean`
`shouldApplyTo(HttpServletRequest request, 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.

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

`addMappedHandlerClass, buildLogMessage, getMappedHandlerClasses, getOrder, hasHandlerMappings, logException, prepareResponse, preventCaching, resolveException, setMappedHandlerClasses, setMappedHandlerPredicate, setMappedHandlers, setOrder, setPreventResponseCaching, setWarnLogCategory`

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

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

## 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:
  - `HandlerMethod`
  - `hasGlobalExceptionHandlers()`

### 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 org.springframework.web.method.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