第十八节:学习统一异常处理(自学Spring boot 3.x的第五天)
这节记录下如何通过AOP方式统一处理异常拦截。
第一步:
新建一个exception包,创建一个ExcetionHandler.java(名字随意取)
package cn.wcyf.wcai.exception;
import cn.wcyf.wcai.common.Result;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@RestControllerAdvice
public class ExceptionHandler {
// 处理运行时异常
@org.springframework.web.bind.annotation.ExceptionHandler(BussinessException.class)
public Result handlerException(BussinessException e){
//处理逻辑
return Result.fail(e.getMessage());
}
@org.springframework.web.bind.annotation.ExceptionHandler(ArithmeticException.class)
public Result handlerArithmeticException(ArithmeticException e){
return Result.fail(e.getMessage());
}
}
要处理哪个异常,就在注解后面加上该拦截类的class。
第二步:测试
写一个错误,使得访问时报错。
@GetMapping("/{id}")
public Result<Student> getById(@PathVariable Integer id){
int o = 1/0 ;
if(id==10||id==11){
return Result.success(studentService.getById(id));
// return ReturnResult.createSuccessfulResp(ResultEnum.SUCCESS.getDesc(),studentService.getById(id));
}else {
return Result.fail(ResultEnum.ILLEGAL_ARGUMENT);
}
}
}