zoukankan      html  css  js  c++  java
  • Spring-Boot 全局的异常处理~

    Spring-Boot  全局的异常处理主要使用注解 @ControllerAdvice 来完成~

    如果单使用@ExceptionHandler,只能在当前Controller中处理异常。但当配合@ControllerAdvice一起使用的时候,就可以摆脱那个限制了。

    他会拦截所有使用@Controller注解的类。

    
    
    package com.favorites.comm.exception;
    
    import org.apache.catalina.servlet4preview.http.HttpServletRequest;
    import org.apache.log4j.Logger;
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.servlet.ModelAndView;
    
    
    @ControllerAdvice
    public class GlobalExceptionHandler {
    
        protected Logger logger = Logger.getLogger(this.getClass());
    
        public static final String DEFAULT_ERROR_VIEW = "error";
    
        @ExceptionHandler(value = Exception.class)
        @ResponseBody
        public ModelAndView defaultErrorHandler(Exception e, HttpServletRequest request) throws Exception {
            
            // 把异常结果通过日志 记录下来
            logger.info("请求地址:" + request.getRequestURL());
            logger.error("异常信息:",e); 
            
            //如果需要把异常信息展示到页面 请使用addObject()  
            ModelAndView mav = new ModelAndView();
            mav.addObject("url", request.getRequestURL());
            mav.addObject("Exception", e);
            mav.setViewName(DEFAULT_ERROR_VIEW);
            
            return mav;//返回对应的错误页面
        }
    }
     
  • 相关阅读:
    maven
    XML
    软件安装配置
    常用命令
    hadoop 简单安装部署
    反射技术(一篇)
    SpringBoot(九篇)
    Struts2(十六篇)
    Spring(七篇)
    Spring MVC(七篇)
  • 原文地址:https://www.cnblogs.com/zygyun/p/8655399.html
Copyright © 2011-2022 走看看