【框架篇】统一异常处理

✅作者简介:大家好,我是小杨
个人主页:「小杨」的csdn博客

希望大家多多支持一起进步呀!


1,统一异常处理的介绍

统⼀异常处理使⽤的是 @ControllerAdvice + @ExceptionHandler 来实现的,@ControllerAdvice 表示控制器通知类,@ExceptionHandler 是异常处理器,两个结合表示当出现异常的时候执⾏某个通知,也就是执⾏某个⽅法事件。


2,统一异常处理的实现

1,创建一个异常处理类

package com.example.exceptionhandler.common;
import org.springframework.web.bind.annotation.ControllerAdvice;

@ControllerAdvice
public class MyExceptionAdivce {
    
}

2,创建异常检测的类和处理业务方法

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,注意事项

当异常处理类中同时存在指定异常的处理和默认异常的处理时,出现异常时是如何处理的呢?

【框架篇】统一异常处理_第1张图片

解答:当出现的异常不在指定的异常处理方法列表中,就会调用默认异常处理方法;而在指定的异常处理方法列表中,就调用对应的异常处理方法,匹配顺序为当前类及其子类向上依次匹配。


结语

这就是本期博客的全部内容啦!如果有什么其他的问题无法自己解决,可以在评论区留言哦!

最后,如果你觉得这篇文章写的还不错的话或者有所收获的话,麻烦小伙伴们动动你们的小手,给个三连呗(点赞,评论✍,收藏),多多支持一下!各位的支持是我最大的动力,后期不断更新优质的内容来帮助大家,一起进步。那我们下期见!


你可能感兴趣的:(Java,EE【进阶】,spring,boot,java,java-ee)