SpringBoot项目中统一异常处理
1. 创建状态码枚举类
@Getter
@NoArgsConstructor
@AllArgsConstructor
public enum StatusCode {
OK(200, "成功"),
USER_INFO_NOT_FOUND(404, "用户名不存在"),
;
int code;
String message;
}
2.创建Exception类
@NoArgsConstructor
@AllArgsConstructor
@Getter
public class SamsException extends RuntimeException {
private StatusCode statusCode;
}
3.创建Controller层返回对象
@Data
public class Result {
private Boolean flag; //是否成功
private Integer code; //返回状态码
private String message; //返回信息
private Object data; //返回数据
public Result(Boolean flag, StatusCode statusCode) {
this.flag = flag;
this.code = statusCode.getCode();
this.message = statusCode.getMessage();
}
public Result(Boolean flag, StatusCode statusCode, Object data) {
this.flag = flag;
this.code = statusCode.getCode();
this.message = statusCode.getMessage();
this.data = data;
}
}
4. 创建通知异常处理类
/**
* 通用异常处理
*/
@ControllerAdvice
public class CommonExceptionHandler {
@ResponseBody
@ExceptionHandler(SamsException.class)
public Result handlerException(SamsException e) {
return new Result(false, e.getStatusCode());
}
}
还没有评论,来说两句吧...