十三,SpringBoot-全局异常处理器

这个不是必须的,只是说使用后可以更好的处理自己处理异常。当然了也不是说它的实用性不高,这个还是根据项目而定。

废话不多说,这里主要用到两个注解:

①,@ControllerAdvice   字面理解是通知,用这个可以说告诉spring我当前这个类是用来捕获所有Controller的异常

②,@ExceptionHandler  用来配置捕获哪些异常

=========以下仅为示例========

一,创建GlobalException.java

package webdev.globalException;


import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;

@ControllerAdvice //通知
public class GlobalException {

    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    public Map globalException(Exception e){

        Map map = new HashMap<>();
        map.put("code",1001);

        if (e instanceof ArrayIndexOutOfBoundsException){
            map.put("error","越界异常");
        }
        if (e instanceof ArithmeticException){
            map.put("error","运算异常");
        }
        return map;
    }
}

②,Controller (这里面写了一个运算异常)

    @RequestMapping("/exceptionTest")
    @ResponseBody
    public String  exceptionTest(){
        int num = 1/0;
        return "ExTest";
    }

③,启动访问

十三,SpringBoot-全局异常处理器_第1张图片

到这是不是感觉在此基础上做些其它的操作?比如系统发生异常后及时给运维或开发人员推送通知消息。比如结合邮件,公众号等等为运维或开发人员及时推送消息通知。当然这个用不用还是看项目看需求,所以说不是必须的但也是比较重要的。

 

你可能感兴趣的:(springBoot开发)