package cn.ksource.web.exception; import org.apache.log4j.Logger; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.io.StringWriter; /** * 自定义异常处理 * * @author zxl */ public class ExceptionHandler implements HandlerExceptionResolver { private static Logger logger = org.apache.log4j.Logger.getLogger(ExceptionHandler.class); public void setDefaultError(String defaultError) { this.defaultError = defaultError; } private String defaultError; @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object obj, Exception ex) { //记录日志 StringWriter sw=new StringWriter(); PrintWriter pw=new PrintWriter(sw); ex.printStackTrace(pw); logger.error(sw.toString()); ModelAndView mView = new ModelAndView(); String viewName = defaultError;//系统程序异常 mView.setViewName(viewName); mView.addObject("msg", ex.getMessage()); return mView; } }