zoukankan      html  css  js  c++  java
  • 全局异常处理

    一、简介  

      为了将异常处理代码和业务代码分离,需要配置一个全局异常处理处理器,全局异常处理器整个系统只能有一个,使用方法:需要实现一个接口 HandlerExceptionResolver、需要在 springmvc 中配置

    二、准备环境

      log4j.properties 属性文件下载。将这个文件复制到 src/main/resources 资源目录下

        链接:https://pan.baidu.com/s/15rUL8CKYMmN6EfxxJ7672A 密码:dzxi

      slf4j.jar 包下载

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.4</version>
    </dependency>

    三、代码

    package com.fw.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 GlobalExceptionResolver implements HandlerExceptionResolver {
    
        private static Logger logger = LoggerFactory.getLogger(GlobalExceptionResolver.class);
        
        @Override
        public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
                Exception ex) {
            //打印控制台
            ex.printStackTrace();
            //写日志
            logger.error("系统发生异常",ex);
            //发邮件、发短信
            
            //展示错误页面
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.addObject("message", "系统发生异常,请稍后重试");
            modelAndView.setViewName("error/exception");
            return modelAndView;
        }
    
    }

    四、springmvc 中配置异常处理器

    <!-- 全局异常处理器 -->
    <bean class="com.fw.exception.GlobalExceptionResolver"></bean>
  • 相关阅读:
    c++拷贝构造函数和赋值运算符
    c++运算符定义为成员函数还是非成员函数
    c++重载运算符位置的限制
    为什么operator<<运算符重载一定要为友元函数
    动态规划求一定数量骰子和的概率
    vector之reserve的坑
    c++ decltype和auto对比学习
    asio的前摄器模式
    动态显示当前时间
    js遍历二维数组
  • 原文地址:https://www.cnblogs.com/fangwu/p/8669196.html
Copyright © 2011-2022 走看看