Class ExceptionHandlerExceptionResolver

All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.InitializingBean, org.springframework.context.ApplicationContextAware, org.springframework.core.Ordered, HandlerExceptionResolver

public class ExceptionHandlerExceptionResolver extends AbstractHandlerMethodExceptionResolver implements org.springframework.context.ApplicationContextAware, org.springframework.beans.factory.InitializingBean
Since:
3.1
Author:
Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze
  • Constructor Details

    • ExceptionHandlerExceptionResolver

      public ExceptionHandlerExceptionResolver()
  • Method Details

    • setCustomArgumentResolvers

      public void setCustomArgumentResolvers(@Nullable List<org.springframework.web.method.support.HandlerMethodArgumentResolver> argumentResolvers)
      Provide resolvers for custom argument types. Custom resolvers are ordered after built-in ones. To override the built-in support for argument resolution use setArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver>) instead.
    • getCustomArgumentResolvers

      @Nullable public List<org.springframework.web.method.support.HandlerMethodArgumentResolver> getCustomArgumentResolvers()
      Return the custom argument resolvers, or null.
    • setArgumentResolvers

      public void setArgumentResolvers(@Nullable List<org.springframework.web.method.support.HandlerMethodArgumentResolver> argumentResolvers)
      Configure the complete list of supported argument types thus overriding the resolvers that would otherwise be configured by default.
    • getArgumentResolvers

      @Nullable public org.springframework.web.method.support.HandlerMethodArgumentResolverComposite getArgumentResolvers()
      Return the configured argument resolvers, or possibly null if not initialized yet via afterPropertiesSet().
    • setCustomReturnValueHandlers

      public void setCustomReturnValueHandlers(@Nullable List<org.springframework.web.method.support.HandlerMethodReturnValueHandler> returnValueHandlers)
      Provide handlers for custom return value types. Custom handlers are ordered after built-in ones. To override the built-in support for return value handling use setReturnValueHandlers(java.util.List<org.springframework.web.method.support.HandlerMethodReturnValueHandler>).
    • getCustomReturnValueHandlers

      @Nullable public List<org.springframework.web.method.support.HandlerMethodReturnValueHandler> getCustomReturnValueHandlers()
      Return the custom return value handlers, or null.
    • setReturnValueHandlers

      public void setReturnValueHandlers(@Nullable List<org.springframework.web.method.support.HandlerMethodReturnValueHandler> returnValueHandlers)
      Configure the complete list of supported return value types thus overriding handlers that would otherwise be configured by default.
    • getReturnValueHandlers

      @Nullable public org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite getReturnValueHandlers()
      Return the configured handlers, or possibly null if not initialized yet via afterPropertiesSet().
    • setMessageConverters

      public void setMessageConverters(List<org.springframework.http.converter.HttpMessageConverter<?>> messageConverters)
      Set the message body converters to use.

      These converters are used to convert from and to HTTP requests and responses.

    • getMessageConverters

      public List<org.springframework.http.converter.HttpMessageConverter<?>> getMessageConverters()
      Return the configured message body converters.
    • setContentNegotiationManager

      public void setContentNegotiationManager(org.springframework.web.accept.ContentNegotiationManager contentNegotiationManager)
      Set the ContentNegotiationManager to use to determine requested media types. If not set, the default constructor is used.
    • getContentNegotiationManager

      public org.springframework.web.accept.ContentNegotiationManager getContentNegotiationManager()
      Return the configured ContentNegotiationManager.
    • setResponseBodyAdvice

      public void setResponseBodyAdvice(@Nullable List<ResponseBodyAdvice<?>> responseBodyAdvice)
      Add one or more components to be invoked after the execution of a controller method annotated with @ResponseBody or returning ResponseEntity but before the body is written to the response with the selected HttpMessageConverter.
    • setApplicationContext

      public void setApplicationContext(@Nullable org.springframework.context.ApplicationContext applicationContext)
      Specified by:
      setApplicationContext in interface org.springframework.context.ApplicationContextAware
    • getApplicationContext

      @Nullable public org.springframework.context.ApplicationContext getApplicationContext()
    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • getExceptionHandlerAdviceCache

      public Map<org.springframework.web.method.ControllerAdviceBean,org.springframework.web.method.annotation.ExceptionHandlerMethodResolver> getExceptionHandlerAdviceCache()
      Return an unmodifiable Map with the @ControllerAdvice beans discovered in the ApplicationContext. The returned map will be empty if the method is invoked before the bean has been initialized via afterPropertiesSet().
    • getDefaultArgumentResolvers

      protected List<org.springframework.web.method.support.HandlerMethodArgumentResolver> getDefaultArgumentResolvers()
      Return the list of argument resolvers to use including built-in resolvers and custom resolvers provided via setCustomArgumentResolvers(java.util.List<org.springframework.web.method.support.HandlerMethodArgumentResolver>).
    • getDefaultReturnValueHandlers

      protected List<org.springframework.web.method.support.HandlerMethodReturnValueHandler> getDefaultReturnValueHandlers()
      Return the list of return value handlers to use including built-in and custom handlers provided via setReturnValueHandlers(java.util.List<org.springframework.web.method.support.HandlerMethodReturnValueHandler>).
    • hasGlobalExceptionHandlers

      protected boolean hasGlobalExceptionHandlers()
      Description copied from class: AbstractHandlerMethodExceptionResolver
      Whether this resolver has global exception handlers, e.g. not declared in the same class as the HandlerMethod that raised the exception and therefore can apply to any handler.
      Overrides:
      hasGlobalExceptionHandlers in class AbstractHandlerMethodExceptionResolver
    • shouldApplyTo

      protected boolean shouldApplyTo(HttpServletRequest request, @Nullable Object handler)
      Description copied from class: AbstractHandlerMethodExceptionResolver
      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 AbstractHandlerMethodExceptionResolver
      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:
    • doResolveHandlerMethodException

      @Nullable protected ModelAndView doResolveHandlerMethodException(HttpServletRequest request, HttpServletResponse response, @Nullable org.springframework.web.method.HandlerMethod handlerMethod, Exception exception)
      Find an @ExceptionHandler method and invoke it to handle the raised exception.
      Specified by:
      doResolveHandlerMethodException in class AbstractHandlerMethodExceptionResolver
      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)
      exception - the exception that got thrown during handler execution
      Returns:
      a corresponding ModelAndView to forward to, or null for default processing
    • getExceptionHandlerMethod

      @Nullable protected ServletInvocableHandlerMethod getExceptionHandlerMethod(@Nullable org.springframework.web.method.HandlerMethod handlerMethod, Exception exception)
      Find an @ExceptionHandler method for the given exception. The default implementation searches methods in the class hierarchy of the controller first and if not found, it continues searching for additional @ExceptionHandler methods assuming some @ControllerAdvice Spring-managed beans were detected.
      Parameters:
      handlerMethod - the method where the exception was raised (may be null)
      exception - the raised exception
      Returns:
      a method to handle the exception, or null if none