码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBoot学习13:springboot异常处理方式3(使用@ControllerAdvice+@ExceptionHandle注解)

时间:2019-02-14 10:29:04      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:解决方法   全局   hand   code   exception   nis   数组   value   let   

问题:使用@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;
    }
}

 

SpringBoot学习13:springboot异常处理方式3(使用@ControllerAdvice+@ExceptionHandle注解)

标签:解决方法   全局   hand   code   exception   nis   数组   value   let   

原文地址:https://www.cnblogs.com/duanrantao/p/10373107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!