• SprimgMVC学习笔记(六)—— 全局异常的处理


    一、处理思路

      springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常处理器可以实现一个系统的异常处理逻辑。

      系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。

           系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图:

        

    二、创建全局异常处理器

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    public class GlobalExceptionResolver implements HandlerExceptionResolver {
    
        Logger logger = LoggerFactory.getLogger(GlobalExceptionResolver.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;
        }
    
    }

    三、在Springmvc中配置异常处理器

    <!-- 全局异常处理器 -->
    <bean class="cn.e3mall.search.exception.GlobalExceptionResolver"/>

    四、引入log4j.properties配置文件

        

     注意:配置文件的名字必须为log4j.properties,这样log4j会自动加载,同时log4j的jar包也要加入到工程中

     log4j.properties:

    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=
    
    [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

      

  • 相关阅读:
    文件的初级功能
    Scanner的用法
    界面制作小例
    初学Java感想
    el-table合计栏未显示的问题
    推荐一些团队博客和个人博客地址
    大数加法
    汇编语言画圆
    Java一个简单的文件工具集
    css选择器
  • 原文地址:https://www.cnblogs.com/yft-javaNotes/p/10152759.html
Copyright © 2020-2023  润新知