全局异常处理

Posted arjenlee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全局异常处理相关的知识,希望对你有一定的参考价值。

1.   全局异常处理

1.1. 处理思路

  技术分享图片

 

1.2. log4j日志配置文件

  slf4j是一个日志框架,是一个顶层的日志系统,底层实现可以是log4j也可以是commons-logging。在项目中使用顶层的slf4j接口。

  log4j是对抽象的slf4j的具体实现。

  classPath路径下创建文件 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

 

1.3. 创建全局异常处理器

 

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;
    }

}

 

 


 

1.4. Springmvc中配置异常处理器

 技术分享图片

以上是关于全局异常处理的主要内容,如果未能解决你的问题,请参考以下文章

WPF 精修篇 全局为处理异常处理

聊聊springboot项目全局异常处理那些事儿

Spring Boot 2.X:全局异常处理

csharp 通过HTTP状态代码处理全局应用程序异常

OWIN / Katana 的未处理异常全局处理程序?

Kitty Cloud(HTTP/RPC)的全局异常处理