今天学习springboot异常处理时出现的小bug,记录一下... 当我写好了异常处理类GlobalExceptionHandler
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class) // todo 拦截所有异常
@ResponseBody // 出现bug之前我没加
public Result error(Exception e){
return Result.fail().message("发生"+e.getMessage()+"异常");
}
@ExceptionHandler({ArithmeticException.class, NullPointerException.class}) // todo 拦截算数异常和空指针异常
@ResponseBody // 出现bug之前我没加
public Result error(ArithmeticException e){
return Result.fail().message("发生"+e.getMessage()+"异常");
}
}
就因为我在GlobalExceptionHandler的异常处理方法上没加@ResponseBody注解,他不能给前端返回json数据。 原因是因为我在Controller类上加了@ResponseBody(不是方法),他就会默认只接收json数据,但是异常被异常处理类处理之后没有给前端返回json数据,他就认为在Controller中没有一个能处理这个请求的handler,所以就报了404