• SpringMVC的异常


    @ExceptionHandler(value={ArithmeticException.class})
        public ModelAndView ex1(Exception ex){
            ModelAndView mv=new ModelAndView();
            mv.setViewName("error");
            mv.addObject("ex", ex);
            return mv;        
        }

    在出现异常的类中添加异常的方法。

    一、注解的时候不在使用@RequestMapping(),而是使用@ExceptionHandler()进行注解。

           @ExceptionHandler()的参数是:

      value= {  ArithmeticException.class},是一个数组,可以添加多个异常的说明

    二、这时候如果想向前天传递参数就不能在方法的参数中使用Map,而是改用

      ModelAndView。

    三。如果在本类中写了多个异常的方法,比如写了

    @ExceptionHandler(value={Exception.class})
        public ModelAndView ex2(Exception ex){
            ModelAndView mv=new ModelAndView();
            System.out.println(ex);
            mv.setViewName("error");
            mv.addObject("ex", ex);
            return mv;
            
        }
        
        @ExceptionHandler(value={ArithmeticException.class})
        public ModelAndView ex1(Exception ex){
            ModelAndView mv=new ModelAndView();
            System.out.println(ex);
            mv.setViewName("error");
            mv.addObject("ex", ex);
            return mv;        
        }

    这时如果出现了ArithmeticException异常,会执行最接近异常的异常方法,也就是会执行ex1的

    异常方法。

    三、全局异常处理

      如果想定义一个监视所有类的异常的方法

      再创建一个类,类的上方不再是@Controller注解,而是使用@ControllerAdvice进行注解,

      然后写一个异常的方法 ,用@ExceptionHandler进行注解。

      

    @ControllerAdvice
    public class Exception1 {
        @ExceptionHandler(value={ArithmeticException.class})
        public ModelAndView ex1(Exception ex){
            ModelAndView mv=new ModelAndView();
            mv.setViewName("error");
            mv.addObject("ex", ex);
            return mv;
            
            
        }
    
    }
  • 相关阅读:
    Fedora 23 配置
    小小的告别一下这个博客
    markdown测试
    ihhh题解
    【BZOJ】1998: [Hnoi2010]Fsk物品调度
    【BZOJ】2563: 阿狸和桃子的游戏
    【BZOJ】3712: [PA2014]Fiolki
    【BZOJ】2333: [SCOI2011]棘手的操作
    我的vimrc
    Ubuntu Gnome 14.04.2 lts 折腾笔记
  • 原文地址:https://www.cnblogs.com/xuesheng/p/7426399.html
Copyright © 2020-2023  润新知