文章目录

龚雄壮 的个人博客

Spring boot 2 添加全局异常拦截

  gongxiongzhuang

    之前写代码经常在controller控制层的每个方法里面写try catch,现在使用spring boot实现一个全局的异常拦截的功能,不用再controller的每个方法加try catch了。

    /**
     * 全局的异常拦截
     */
    @ControllerAdvice
    public class GlobalExceptionHandler {
    
        private Logger logger =  LoggerFactory.getLogger(this.getClass());
    
        private static final String DEFAULT_ERROR_VIEW = "error";
    
        @ExceptionHandler(value = Exception.class)
        public ModelAndView defaultErrorHandler(Exception e, HttpServletRequest request) {
            logger.info("请求地址:" + request.getRequestURL());
            ModelAndView mav = new ModelAndView();
            logger.error("异常信息:",e);
            mav.setViewName(DEFAULT_ERROR_VIEW);
            return mav;
        }
    }
    

    简化后的控制层如下:
    image.png
    请求时出现异常信息输出如下:
    image.png
    我们可以发现在控制层没有try catch,但是控制台输出了捕获到的异常信息。

    好好学习,天天向上