在项目当中我们免不了会遇到一些异常,但是又不想在遇到异常时自己处理一次,那就需要们的公共异常处理类HandlerExceptionResolver
自己编写异常处理类实现HandlerExceptionResolver 内的resolveException()方法;大致步骤如下
1:针对接口项目返回json数据
首先需要在web.xml内配置
<bean id="exceptionResolver" class="com.*.*.web.SimpleJSONExceptionResolver"/>
其次实现该异常处理类
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { ModelAndView mv = new ModelAndView(); /* 使用response返回 */ response.setStatus(HttpStatus.OK.value()); //设置状态码 response.setContentType(""); //设置ContentType response.setCharacterEncoding("UTF-8"); //避免乱码 response.setHeader("Cache-Control", "no-cache, must-revalidate"); try { response.getWriter().write("{\"success\":false,\"msg\":\"" + ex.getMessage() + "\"}"); } catch (IOException e) { LOGGER.error("与客户端通讯异常:"+ e.getMessage(), e); } LOGGER.debug("异常:" + ex.getMessage(), ex); return mv; }2.针对web项目
首先写mvc-web.xml
<bean id="exceptionResolver" class="com.*.*.web.SimpleJSONExceptionResolver"/>其次异常处理类【根据业务异常进行处理,返回对应的错误页面】
web.xml
- <!-- web异常页面处理 -->
- <error-page>
- <exception-type>java.lang.Throwable</exception-type>
- <location>/error_500</location>
- </error-page>
- <error-page>
- <exception-type>java.lang.Exception</exception-type>
- <location>/error_404</location>
- </error-page>