Example usage for org.springframework.web.servlet HandlerExceptionResolver resolveException

List of usage examples for org.springframework.web.servlet HandlerExceptionResolver resolveException

Introduction

In this page you can find the example usage for org.springframework.web.servlet HandlerExceptionResolver resolveException.

Prototype

@Nullable
ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response,
        @Nullable Object handler, Exception ex);

Source Link

Document

Try to resolve the given exception that got thrown during handler execution, returning a ModelAndView that represents a specific error page if appropriate.

Usage

From source file:com.alexshabanov.springrestapi.restapitest.DefaultRestTestSupport.java

private boolean handleException(Exception e, HttpServletRequest request, HttpServletResponse response,
        Object handler) {/*  w w  w .j  av  a  2 s.c o  m*/
    final Map<String, HandlerExceptionResolver> resolverMap = BeanFactoryUtils
            .beansOfTypeIncludingAncestors(context, HandlerExceptionResolver.class, true, false);

    final List<HandlerExceptionResolver> resolvers = new ArrayList<HandlerExceptionResolver>(
            resolverMap.values());
    OrderComparator.sort(resolvers);

    for (HandlerExceptionResolver exceptionResolver : resolvers) {
        final Object o = exceptionResolver.resolveException(request, response, handler, e);
        if (o != null) {
            // we don't care about model-and-view in the result (this is not needed for testing)
            return true;
        }
    }

    return false;
}

From source file:com.mystudy.source.spring.mvc.DispatcherServlet.java

/**
 * Determine an error ModelAndView via the registered HandlerExceptionResolvers.
 * @param request current HTTP request//from w w w .ja v a  2 s  .c  o m
 * @param response current HTTP response
 * @param handler the executed handler, or {@code null} if none chosen at the time of the exception
 * (for example, if multipart resolution failed)
 * @param ex the exception that got thrown during handler execution
 * @return a corresponding ModelAndView to forward to
 * @throws Exception if no error ModelAndView found
 */
protected ModelAndView processHandlerException(HttpServletRequest request, HttpServletResponse response,
        Object handler, Exception ex) throws Exception {

    // Check registered HandlerExceptionResolvers...
    ModelAndView exMv = null;
    for (HandlerExceptionResolver handlerExceptionResolver : this.handlerExceptionResolvers) {
        exMv = handlerExceptionResolver.resolveException(request, response, handler, ex);
        if (exMv != null) {
            break;
        }
    }
    if (exMv != null) {
        if (exMv.isEmpty()) {
            return null;
        }
        // We might still need view name translation for a plain error model...
        if (!exMv.hasView()) {
            exMv.setViewName(getDefaultViewName(request));
        }
        if (logger.isDebugEnabled()) {
            logger.debug("Handler execution resulted in exception - forwarding to resolved error view: " + exMv,
                    ex);
        }
        WebUtils.exposeErrorRequestAttributes(request, ex, getServletName());
        return exMv;
    }

    throw ex;
}

From source file:org.springframework.web.portlet.DispatcherPortlet.java

/**
 * Determine an error ModelAndView via the registered HandlerExceptionResolvers.
 * @param request current portlet request
 * @param response current portlet response
 * @param handler the executed handler, or null if none chosen at the time of
 * the exception (for example, if multipart resolution failed)
 * @param ex the exception that got thrown during handler execution
 * @return a corresponding ModelAndView to forward to
 * @throws Exception if no error ModelAndView found
 *///from   w  ww  .j a  va2 s  . c om
protected ModelAndView processHandlerException(RenderRequest request, RenderResponse response, Object handler,
        Exception ex) throws Exception {

    ModelAndView exMv = null;
    for (Iterator<HandlerExceptionResolver> it = this.handlerExceptionResolvers.iterator(); exMv == null
            && it.hasNext();) {
        HandlerExceptionResolver resolver = it.next();
        exMv = resolver.resolveException(request, response, handler, ex);
    }
    if (exMv != null) {
        if (logger.isDebugEnabled()) {
            logger.debug("HandlerExceptionResolver returned ModelAndView [" + exMv + "] for exception");
        }
        logger.warn("Handler execution resulted in exception - forwarding to resolved error view", ex);
        return exMv;
    } else {
        throw ex;
    }
}

From source file:org.springframework.web.portlet.DispatcherPortlet.java

/**
 * Determine an error ModelAndView via the registered HandlerExceptionResolvers.
 * @param request current portlet request
 * @param response current portlet response
 * @param handler the executed handler, or null if none chosen at the time of
 * the exception (for example, if multipart resolution failed)
 * @param ex the exception that got thrown during handler execution
 * @return a corresponding ModelAndView to forward to
 * @throws Exception if no error ModelAndView found
 *//*from   w  w  w.  j ava 2s .com*/
protected ModelAndView processHandlerException(ResourceRequest request, ResourceResponse response,
        Object handler, Exception ex) throws Exception {

    ModelAndView exMv = null;
    for (Iterator<HandlerExceptionResolver> it = this.handlerExceptionResolvers.iterator(); exMv == null
            && it.hasNext();) {
        HandlerExceptionResolver resolver = it.next();
        exMv = resolver.resolveException(request, response, handler, ex);
    }
    if (exMv != null) {
        if (logger.isDebugEnabled()) {
            logger.debug("HandlerExceptionResolver returned ModelAndView [" + exMv + "] for exception");
        }
        logger.warn("Handler execution resulted in exception - forwarding to resolved error view", ex);
        return exMv;
    } else {
        throw ex;
    }
}

From source file:org.springframework.web.servlet.DispatcherServlet.java

/**
 * Determine an error ModelAndView via the registered HandlerExceptionResolvers.
 * @param request current HTTP request/*from ww  w. j a  va 2 s.  com*/
 * @param response current HTTP response
 * @param handler the executed handler, or {@code null} if none chosen at the time of the exception
 * (for example, if multipart resolution failed)
 * @param ex the exception that got thrown during handler execution
 * @return a corresponding ModelAndView to forward to
 * @throws Exception if no error ModelAndView found
 */
@Nullable
protected ModelAndView processHandlerException(HttpServletRequest request, HttpServletResponse response,
        @Nullable Object handler, Exception ex) throws Exception {

    // Check registered HandlerExceptionResolvers...
    ModelAndView exMv = null;
    if (this.handlerExceptionResolvers != null) {
        for (HandlerExceptionResolver handlerExceptionResolver : this.handlerExceptionResolvers) {
            exMv = handlerExceptionResolver.resolveException(request, response, handler, ex);
            if (exMv != null) {
                break;
            }
        }
    }
    if (exMv != null) {
        if (exMv.isEmpty()) {
            request.setAttribute(EXCEPTION_ATTRIBUTE, ex);
            return null;
        }
        // We might still need view name translation for a plain error model...
        if (!exMv.hasView()) {
            String defaultViewName = getDefaultViewName(request);
            if (defaultViewName != null) {
                exMv.setViewName(defaultViewName);
            }
        }
        if (logger.isDebugEnabled()) {
            logger.debug("Handler execution resulted in exception - forwarding to resolved error view: " + exMv,
                    ex);
        }
        WebUtils.exposeErrorRequestAttributes(request, ex, getServletName());
        return exMv;
    }

    throw ex;
}

From source file:org.springframework.web.servlet.DispatcherServletMod.java

/**
 * Determine an error ModelAndView via the registered
 * HandlerExceptionResolvers.//from   w w  w.  j  a va  2 s  . c  o  m
 * 
 * @param request
 *            current HTTP request
 * @param response
 *            current HTTP response
 * @param handler
 *            the executed handler, or {@code null} if none chosen at the
 *            time of the exception (for example, if multipart resolution
 *            failed)
 * @param ex
 *            the exception that got thrown during handler execution
 * @return a corresponding ModelAndView to forward to
 * @throws Exception
 *             if no error ModelAndView found
 */
protected ModelAndView processHandlerException(HttpServletRequest request, HttpServletResponse response,
        Object handler, Exception ex) throws Exception {

    // Check registered HandlerExceptionResolvers...
    ModelAndView exMv = null;
    for (HandlerExceptionResolver handlerExceptionResolver : this.handlerExceptionResolvers) {
        exMv = handlerExceptionResolver.resolveException(request, response, handler, ex);
        if (exMv != null) {
            break;
        }
    }
    if (exMv != null) {
        if (exMv.isEmpty()) {
            return null;
        }
        // We might still need view name translation for a plain error
        // model...
        if (!exMv.hasView()) {
            exMv.setViewName(getDefaultViewName(request));
        }
        if (logger.isDebugEnabled()) {
            logger.debug("Handler execution resulted in exception - forwarding to resolved error view: " + exMv,
                    ex);
        }
        WebUtils.exposeErrorRequestAttributes(request, ex, getServletName());
        return exMv;
    }

    throw ex;
}

From source file:org.springframework.web.servlet.LogDispatcherServlet.java

/**
 * Determine an error ModelAndView via the registered HandlerExceptionResolvers.
 * @param request current HTTP request/* ww w .ja  v  a  2  s.  co m*/
 * @param response current HTTP response
 * @param handler the executed handler, or {@code null} if none chosen at the time of the exception
 * (for example, if multipart resolution failed)
 * @param ex the exception that got thrown during handler execution
 * @return a corresponding ModelAndView to forward to
 * @throws Exception if no error ModelAndView found
 */
protected ModelAndView processHandlerException(HttpServletRequest request, HttpServletResponse response,
        Object handler, Exception ex) throws Exception {

    // Check registered HandlerExceptionResolvers...
    ModelAndView exMv = null;
    for (HandlerExceptionResolver handlerExceptionResolver : this.handlerExceptionResolvers) {
        exMv = handlerExceptionResolver.resolveException(request, response, handler, ex);
        if (exMv != null) {
            break;
        }
    }
    if (exMv != null) {
        if (exMv.isEmpty()) {
            request.setAttribute(EXCEPTION_ATTRIBUTE, ex);
            return null;
        }
        // We might still need view name translation for a plain error model...
        if (!exMv.hasView()) {
            exMv.setViewName(getDefaultViewName(request));
        }
        if (logger.isDebugEnabled()) {
            logger.debug("Handler execution resulted in exception - forwarding to resolved error view: " + exMv,
                    ex);
        }
        WebUtils.exposeErrorRequestAttributes(request, ex, getServletName());
        return exMv;
    }

    throw ex;
}

From source file:org.springframework.web.servlet.SimpleDispatcherServlet.java

/**
 * Determine an error ModelAndView via the registered HandlerExceptionResolvers.
 * @param request current HTTP request/*from www. j  ava  2s  . com*/
 * @param response current HTTP response
 * @param handler the executed handler, or <code>null</code> if none chosen at the time of the exception
 * (for example, if multipart resolution failed)
 * @param ex the exception that got thrown during handler execution
 * @return a corresponding ModelAndView to forward to
 * @throws Exception if no error ModelAndView found
 */
protected ModelAndView processHandlerException(HttpServletRequest request, HttpServletResponse response,
        Object handler, Exception ex) throws Exception {

    // Check registerer HandlerExceptionResolvers...
    ModelAndView exMv = null;
    for (HandlerExceptionResolver handlerExceptionResolver : this.handlerExceptionResolvers) {
        exMv = handlerExceptionResolver.resolveException(request, response, handler, ex);
        if (exMv != null) {
            break;
        }
    }
    if (exMv != null) {
        if (exMv.isEmpty()) {
            return null;
        }
        if (logger.isDebugEnabled()) {
            logger.debug("Handler execution resulted in exception - forwarding to resolved error view: " + exMv,
                    ex);
        }
        WebUtils.exposeErrorRequestAttributes(request, ex, getServletName());
        return exMv;
    }

    throw ex;
}