• SpringBoot: 13.异常处理方式3(使用@ControllerAdvice+@ExceptionHandle注解)(转)


     

    问题:使用@ExceptionHandle注解需要在每一个controller代码里面都添加异常处理,会咋成代码冗余

    解决方法:新建一个全局异常处理类,添加@ControllerAdvice注解即可

    复制代码
    package com.bjsxt.exception;
    
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.servlet.ModelAndView;
    
    /**
     * Created by Administrator on 2019/2/14.
     * 全局异常处理类
     */
    
    @ControllerAdvice
    public class GlobalException {
        /**
         * 处理ArithmeticException异常,该@ExceptionHandler注释的value属性可以是一个数组,
         * 然后再根据注入的exception判断对不同异常分别进行不同的处理,也可以写多个controller,
         * 对多个不同异常进行处理,这里采用第二种
         * @param e 会将产生异常对象注入到方法中
         * @return 该方法需要返回一个 ModelAndView:目的是可以让我们封装异常信息以及视图的指定
         */
        @ExceptionHandler(value = {ArithmeticException.class})
        public ModelAndView arithmeticExceptionHandler(Exception e){
            ModelAndView mv=new ModelAndView("error_arithmetic");
            mv.addObject("msg",e.toString());
            return mv;
        }
    
    
        /**
         * 处理NullPointerException异常
         * @param e 会将产生异常对象注入到方法中
         * @return 该方法需要返回一个 ModelAndView:目的是可以让我们封装异常信息以及视图的指定
         */
        @ExceptionHandler(value = {NullPointerException.class})
        public ModelAndView nullPointerExceptionHandler(Exception e){
            ModelAndView mv=new ModelAndView("error_nullPointer");
            mv.addObject("msg",e.toString());
            return mv;
        }
    }
    复制代码
  • 相关阅读:
    最近的题越来越难了,卧槽,搞一上午一题不会,题解也看不懂
    hdu 4630 树状数组 ****
    hdu 3473 划分树 ***
    hdu 3360 最小点覆盖 **
    hdu 1507 记录路径的二分匹配 **
    poj 3177 边双联通 **
    hdu 4612 边双联通 ***
    Elasticsearch聚合后分页深入详解
    redis 五种数据类型及其使用场景
    再有人问你分布式锁,这篇文章扔给他
  • 原文地址:https://www.cnblogs.com/kuangzhisen/p/10427182.html
Copyright © 2020-2023  润新知