List of usage examples for org.springframework.web.servlet HandlerExceptionResolver resolveException
@Nullable ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, @Nullable Object handler, Exception ex);
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; }