一、简介
为了将异常处理代码和业务代码分离,需要配置一个全局异常处理处理器,全局异常处理器整个系统只能有一个,使用方法:需要实现一个接口 HandlerExceptionResolver、需要在 springmvc 中配置
二、准备环境
log4j.properties 属性文件下载。将这个文件复制到 src/main/resources 资源目录下
链接:https://pan.baidu.com/s/15rUL8CKYMmN6EfxxJ7672A 密码:dzxi
slf4j.jar 包下载
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.4</version> </dependency>
三、代码
package com.fw.exception; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; public class GlobalExceptionResolver implements HandlerExceptionResolver { private static Logger logger = LoggerFactory.getLogger(GlobalExceptionResolver.class); @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { //打印控制台 ex.printStackTrace(); //写日志 logger.error("系统发生异常",ex); //发邮件、发短信 //展示错误页面 ModelAndView modelAndView = new ModelAndView(); modelAndView.addObject("message", "系统发生异常,请稍后重试"); modelAndView.setViewName("error/exception"); return modelAndView; } }
四、springmvc 中配置异常处理器
<!-- 全局异常处理器 --> <bean class="com.fw.exception.GlobalExceptionResolver"></bean>