zoukankan      html  css  js  c++  java
  • 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

      

  • 相关阅读:
    mac下安装apache tomcat
    前端常用框架和js插件 UI组件等
    HBase二级索引的设计
    通过BulkLoad的方式快速导入海量数据
    Phoenix二级索引(Secondary Indexing)的使用
    java并发编程--Executor框架
    Spark常用函数讲解之Action操作
    Java并发编程--Volatile详解
    Spark常用函数讲解之键值RDD转换
    图解堆排序
  • 原文地址:https://www.cnblogs.com/yft-javaNotes/p/10152759.html
Copyright © 2011-2022 走看看