当出现异常报错时,希望将报错信息以规定的格式返回给前端
我们定义一个Result类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result {
private int status;
private String message;
private Object data;
public static Result success() {
return new Result(0, "success", null);
}
public static Result success(Object data) {
return new Result(0, "success", data);
}
public static Result error(String message) {
return new Result(0, message, null);
}
}
代码中的注释是生成get set方法的。
这个类返回状态码,1为成功,0为失败
msg提示信息
data返回内容
如果出现异常我们希望返回给前端指定格式的Result。
新建一个java类 GlobalExcetionHandler
@RestControllerAdvice
public class GlobalExcetionHandler {
@ExceptionHandler(Exception.class)
public Result handleException(Exception e) {
e.printStackTrace();
// 如果有异常信息则返回,没有则返回默认的操作失败
return Result.error(StringUtils.hasLength(e.getMessage()) ? e.getMessage() : "操作失败");
}
}
通过@RestControllerAdvice注解和@ExceptionHandler注解,返回特定格式的错误信息。