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;//返回对应的错误页面
        }
    }
     
  • 相关阅读:
    第一个自己独立开发并发布的软件
    第一个JavaWeb项目体验
    今天开博
    Mongoid Paging and Iterating Over Large Collections
    图片格式瞎扯淡
    是时候用Coffeescript了
    Mac 小技巧
    印度见闻札记
    作为开发人员,您应该尊重默认行为
    Java 注解(Annoation)学习笔记
  • 原文地址:https://www.cnblogs.com/zygyun/p/8655399.html
Copyright © 2011-2022 走看看