十三,SpringBoot-全局异常处理器
程序员文章站
2022-04-22 13:41:48
...
这个不是必须的,只是说使用后可以更好的处理自己处理异常。当然了也不是说它的实用性不高,这个还是根据项目而定。
废话不多说,这里主要用到两个注解:
①,@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<String,Object> globalException(Exception e){
Map<String,Object> 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";
}
③,启动访问
到这是不是感觉在此基础上做些其它的操作?比如系统发生异常后及时给运维或开发人员推送通知消息。比如结合邮件,公众号等等为运维或开发人员及时推送消息通知。当然这个用不用还是看项目看需求,所以说不是必须的但也是比较重要的。
上一篇: 修改下拉框的样式
下一篇: css文本溢出省略号