频道首页
目录
统一(全局)异常处理
收藏
0
统一异常处理分为:
### 1. 全局异常处理 异常实现过程
- 第一步 创建异常类,在类上添加注解
- 第二步 在类添加执行的方法,在方法上面添加注解,指定哪个异常出现会执行
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. 特定异常处理 异常实现过程
- 第一步 创建异常类,在类上添加注解
- 第二步 在类添加执行的方法,在方法上面添加注解,指定哪个异常出现会执行
// 特定异常处理,执行的方法
@ExceptionHandler(ArithmeticException.class)
@ResponseBody
public Result error(ArithmeticException e){
e.printStackTrace();
return Result.fail().message("执行特定异常处理");
}
### 3. 自定义异常处理 异常实现过程
- 第一步 创建异常类,继承RuntimeException
- 第二步 在异常类添加属性,状态码和描述信息
- 第三步 在出现异常的地方,手动抛出异常
- 第四步 在之前创建类,添加执行的方法
自定义异常类
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());
}
AI文档
会议室
Git管理
云文档
看板