这节记录下如何通过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);}}}