✅作者简介:大家好,我是小杨
个人主页:「小杨」的csdn博客
希望大家多多支持一起进步呀!
统⼀异常处理使⽤的是 @ControllerAdvice + @ExceptionHandler 来实现的,@ControllerAdvice 表示控制器通知类,@ExceptionHandler 是异常处理器,两个结合表示当出现异常的时候执⾏某个通知,也就是执⾏某个⽅法事件。
package com.example.exceptionhandler.common;
import org.springframework.web.bind.annotation.ControllerAdvice;
@ControllerAdvice
public class MyExceptionAdivce {
}
2.1,指定异常的处理
@ExceptionHandler(NullPointerException.class)
public HashMap<String,Object> doNullPointerException(NullPointerException e){
HashMap<String,Object> result = new HashMap<>();
result.put("code",-1);
result.put("msg","空指针异常:" + e.getMessage());
result.put("data",null);
return result;
}
2.2,默认异常的处理
@ExceptionHandler(Exception.class)
public HashMap<String,Object> doException(Exception e){
HashMap<String,Object> result = new HashMap<>();
result.put("code",-1);
result.put("msg","存在异常:" + e.getMessage());
result.put("data",null);
return result;
}
2.3,注意事项
当异常处理类中同时存在指定异常的处理和默认异常的处理时,出现异常时是如何处理的呢?
解答:当出现的异常不在指定的异常处理方法列表中,就会调用默认异常处理方法;而在指定的异常处理方法列表中,就调用对应的异常处理方法,匹配顺序为当前类及其子类向上依次匹配。
结语
这就是本期博客的全部内容啦!如果有什么其他的问题无法自己解决,可以在评论区留言哦!
最后,如果你觉得这篇文章写的还不错的话或者有所收获的话,麻烦小伙伴们动动你们的小手,给个三连呗(点赞,评论✍,收藏),多多支持一下!各位的支持是我最大的动力,后期不断更新优质的内容来帮助大家,一起进步。那我们下期见!