淘淘商城39-springmvc配置全局异常处理

版权声明:本文为博主原创文章,如有转载请注明出处,谢谢。 https://blog.csdn.net/pdsu161530247/article/details/82012685

1.处理思路

项目运行过程中肯定会出现一些问题,当出现异常的时候,我们往往在Controller层捕获并处理了,但这样做不利于我们统一管理,所以需要一个前端控制器对异常进行统一处理。

全局异常处理器中的处理逻辑:

捕获整个系统中发生的异常。

  1. 异常写入日志文件
  2. 及时通知开发人员。发邮件、短信。
  3. 展示一个友好的错误页面,例如:您的网络故障,请重试。

2.创建全局异常处理器

package com.taotao.search.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 GlobalExceptionReslover implements HandlerExceptionResolver {

	Logger logger = LoggerFactory.getLogger(GlobalExceptionReslover.class);
	
	@Override
	public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
			Exception ex) {
		//写日志文件
		logger.error("系统发生异常", ex);
		//发邮件、发短信
		//Jmail:可以查找相关的资料
		//需要在购买短信。调用第三方接口即可。
		//展示错误页面
		ModelAndView modelAndView = new ModelAndView();
		modelAndView.addObject("message", "系统发生异常,请稍后重试");
		modelAndView.setViewName("error/exception");
		return modelAndView;
	}

}

3.配置log4j

log4j.rootLogger=INFO,A3,STDOUT
 
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=[%p] [%l] %10.10c - %m%n
 
log4j.appender.A3=org.apache.log4j.RollingFileAppender
log4j.appender.A3.file=logs/server.log
log4j.appender.A3.MaxFileSize=1024KB
log4j.appender.A3.MaxBackupIndex=10
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=\n\n[%-5p] %d{yyyy-MM-dd HH\:mm\:ss,SSS} method\:%l%n%m%n

4.配置springmvc.xml

<!-- 全局异常处理 -->
<bean class="com.taotao.search.exception.GlobalExceptionReslover"></bean>

5.测试访问

在controller添加一个异常

会被全局异常处理器拦截

在taotao-search-web项目会出现一个logs文件夹,下面有server.log日志文件

猜你喜欢

转载自blog.csdn.net/pdsu161530247/article/details/82012685