springmvc中全局异常处理器的配置

与spring整合的全局异常处理器

之前在ssm项目中对异常处理很是烦脑,没有统一的异常处理机制,在web层大量的使用try~catch,有的处理不了就直接抛给了用户,这样的异常处理显然健壮性很差,后来发现原来spring自带的有异常处理器。用过之后履试不爽。

以下是处理全局异常的类

自己定义一个类只需实现 HandlerExceptionResolver接口即可

/**
 * 全局异常处理器
 * 
 * 
 * @author qiu 
 * @version 1.0
 */
public class GlobalExceptionResolver implements HandlerExceptionResolver {

    private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionResolver.class); 
/**
 *
 * 以下是三种处理异常的方法
 */
    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
            Exception ex) {
        //将异常打印到控制台上
        ex.printStackTrace();
        //写日志
        logger.info("系统发生异常了。。。。。。。");
        //显示的错误页面
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("error/500");
        return modelAndView;
    }

}

同时还得在springmvc中简单的配置一下

<!-- 全局异常处理器 -->
<!-- 只需将对应类的路径加到springmvc.xml即可 -->
    <bean class="com.qidian.test.exception.GlobalExceptionResolver"/>

放在src下的配置文件log4j.properties

log4j.rootLogger=INFO,A3,STDOUT  //三个级别的错误 DEBUG,INFO,ERROR

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=E:/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

猜你喜欢

转载自blog.csdn.net/qq_38790872/article/details/81091750