目录
频道首页
统一(全局)异常处理
收藏
0
xiaoan 最近修改于 2023-08-12 12:39:53

统一异常处理分为:

### 1. 全局异常处理 异常实现过程

  1. 第一步 创建异常类,在类上添加注解
  2. 第二步 在类添加执行的方法,在方法上面添加注解,指定哪个异常出现会执行
import com.xa.auther.result.Result;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice
public class GlobalExceptionHandler {
    // 全局异常处理,执行的方法
    @ExceptionHandler(Exception.class)
    @ResponseBody
    public Result error(){
        return Result.fail().message("执行全局处理异常处理    ");
    }
}

### 2. 特定异常处理 异常实现过程

  1. 第一步 创建异常类,在类上添加注解
  2. 第二步 在类添加执行的方法,在方法上面添加注解,指定哪个异常出现会执行
// 特定异常处理,执行的方法
    @ExceptionHandler(ArithmeticException.class)
    @ResponseBody
    public Result error(ArithmeticException e){
        e.printStackTrace();
        return Result.fail().message("执行特定异常处理");
    }

### 3. 自定义异常处理 异常实现过程

  1. 第一步 创建异常类,继承RuntimeException
  2. 第二步 在异常类添加属性,状态码和描述信息
  3. 第三步 在出现异常的地方,手动抛出异常
  4. 第四步 在之前创建类,添加执行的方法

自定义异常类

import com.xa.auther.result.ResultCodeEnum;
import lombok.Data;

@Data
public class XAException extends RuntimeException{
    private Integer code;// 状态码
    private String msg;// 描述信息
    public XAException(Integer code,String msg){
        super(msg);
        this.msg = msg;
        this.code = code;
    }

    /**
     * 接受枚举类型对象
     * */
    public XAException(ResultCodeEnum resultCodeEnum){
        super(resultCodeEnum.getMessage());
        this.code = resultCodeEnum.getCode();
        this.msg = resultCodeEnum.getMessage();
    }


    @Override
    public String toString() {
        return "XAException{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                '}';
    }
}
// 自定义异常处理,执行的方法
    @ExceptionHandler(XAException.class)
    @ResponseBody
    public Result error(XAException e){
        e.printStackTrace();
        return Result.fail().code(e.getCode()).message(e.getMsg());
    }
内容大纲
批注笔记
统一(全局)异常处理
ArticleBot
z
z
z
z
AI文档
会议室
Git管理
云文档
看板