org.springframework.web.servlet.handler

Class AbstractHandlerExceptionResolver

  • java.lang.Object
    • org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver
    • Field Detail

      • logger

        protected final Log logger
        Logger available to subclasses.
    • Constructor Detail

      • AbstractHandlerExceptionResolver

        public AbstractHandlerExceptionResolver()
    • Method Detail

      • setOrder

        public void setOrder(int order)
      • getOrder

        public int getOrder()
        Description copied from interface: Ordered
        Get the order value of this object.

        Higher values are interpreted as lower priority. As a consequence, the object with the lowest value has the highest priority (somewhat analogous to Servlet load-on-startup values).

        Same order values will result in arbitrary sort positions for the affected objects.

        Specified by:
        getOrder in interface Ordered
        Returns:
        the order value
        See Also:
        Ordered.HIGHEST_PRECEDENCE, Ordered.LOWEST_PRECEDENCE
      • setMappedHandlers

        public void setMappedHandlers(java.util.Set<?> mappedHandlers)
        Specify the set of handlers that this exception resolver should apply to.

        The exception mappings and the default error view will only apply to the specified handlers.

        If no handlers or handler classes are set, the exception mappings and the default error view will apply to all handlers. This means that a specified default error view will be used as a fallback for all exceptions; any further HandlerExceptionResolvers in the chain will be ignored in this case.

      • setMappedHandlerClasses

        public void setMappedHandlerClasses(java.lang.Class<?>... mappedHandlerClasses)
        Specify the set of classes that this exception resolver should apply to.

        The exception mappings and the default error view will only apply to handlers of the specified types; the specified types may be interfaces or superclasses of handlers as well.

        If no handlers or handler classes are set, the exception mappings and the default error view will apply to all handlers. This means that a specified default error view will be used as a fallback for all exceptions; any further HandlerExceptionResolvers in the chain will be ignored in this case.

      • setWarnLogCategory

        public void setWarnLogCategory(java.lang.String loggerName)
        Set the log category for warn logging. The name will be passed to the underlying logger implementation through Commons Logging, getting interpreted as a log category according to the logger's configuration.

        Default is no warn logging. Specify this setting to activate warn logging into a specific category. Alternatively, override the logException(java.lang.Exception, javax.servlet.http.HttpServletRequest) method for custom logging.

        See Also:
        LogFactory.getLog(String), Logger.getLogger(String)
      • setPreventResponseCaching

        public void setPreventResponseCaching(boolean preventResponseCaching)
        Specify whether to prevent HTTP response caching for any view resolved by this exception resolver.

        Default is false. Switch this to true in order to automatically generate HTTP response headers that suppress response caching.

      • shouldApplyTo

        protected boolean shouldApplyTo(HttpServletRequest request,
                                        @Nullable
                                        java.lang.Object handler)
        Check whether this resolver is supposed to apply to the given handler.

        The default implementation checks against the configured handlers and handler classes, if any.

        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:
        setMappedHandlers(java.util.Set<?>), setMappedHandlerClasses(java.lang.Class<?>...)
      • buildLogMessage

        protected java.lang.String buildLogMessage(java.lang.Exception ex,
                                                   HttpServletRequest request)
        Build a log message for the given exception, occurred during processing the given request.
        Parameters:
        ex - the exception that got thrown during handler execution
        request - current HTTP request (useful for obtaining metadata)
        Returns:
        the log message to use
      • preventCaching

        protected void preventCaching(HttpServletResponse response)
        Prevents the response from being cached, through setting corresponding HTTP Cache-Control: no-store header.
        Parameters:
        response - current HTTP response
      • doResolveException

        @Nullable
        protected abstract ModelAndView doResolveException(HttpServletRequest request,
                                                                     HttpServletResponse response,
                                                                     @Nullable
                                                                     java.lang.Object handler,
                                                                     java.lang.Exception ex)
        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 resolved applies ("mappedHandlers" etc), so an implementation may simply proceed with its actual exception handling.

        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