异常的处理
- 全局异常处理
@ControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
//拦截所有异常
@ExceptionHandler(Exception.class)
@ResponseBody
public R error(Exception e){
e.printStackTrace();
return R.error().message("执行了全局的异常处理器");
}
}
- 自定义异常处理
首先创建自定义的异常类:一般情况下包含状态码和异常信息字段
@Data
@AllArgsConstructor
@NoArgsConstructor
public class CustomException extends RuntimeException{
private Integer code;//状态码
private String msg;//信息
}
在异常处理器中添加拦截方法
//自定义异常
@ExceptionHandler(CustomException.class)
@ResponseBody
public R error(CustomException e){
log.error(e.getMsg());
e.printStackTrace();
return R.error().message(e.getMsg()).code(e.getCode());
}
- 特殊异常处理:对指定的异常进行拦截
//特殊异常(例如空指针)
@ExceptionHandler(NullPointerException.class)
@ResponseBody
public R error(NullPointerException e){
log.error(e.getMsg());
e.printStackTrace();
return R.error().message(e.getMsg()).code(e.getCode());
}

浙公网安备 33010602011771号