在 Spring Boot 中,可以自定义带有错误码的异常,以便更好地处理和传递错误信息。以下是实现自定义异常的一般步骤:
创建自定义异常类:创建一个继承自 Exception 或其他合适的异常类的自定义异常类,并添加一个字段用于存储错误码。示例代码如下:
java
public class CustomException extends RuntimeException {
private String errorCode;
public CustomException(String errorCode, String message) {
super(message);
this.errorCode = errorCode;
}
public String getErrorCode() {
return errorCode;
}
}
定义错误码枚举:创建一个包含错误码常量的枚举类,用于表示不同类型的错误。示例代码如下:
java
public enum ErrorCode {
INVALID_INPUT(“ERR001”),
NOT_FOUND(“ERR002”),
UNAUTHORIZED(“ERR003”);
private String code;
ErrorCode(String code) {
this.code = code;
}
public String getCode() {
return code;
}
}
异常处理:在适当的位置捕获自定义异常,并根据错误码进行相应的处理。可以使用 @ControllerAdvice 注解创建一个全局异常处理器,处理自定义异常并返回带有错误码的响应。示例代码如下:
java
@ControllerAdvice
public class CustomExceptionHandler {
@ExceptionHandler(CustomException.class)
public ResponseEntity handleCustomException(CustomException ex) {
ErrorResponse errorResponse = new ErrorResponse(ex.getErrorCode(), ex.getMessage());
return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST);
}
}
定义错误响应对象:创建一个用于返回错误信息的数据对象。示例代码如下:
java
public class ErrorResponse {
private String errorCode;
private String message;
// 构造函数、getter 和 setter 略
// 可以添加其他字段,如时间戳、详细信息等
}
通过以上步骤,你可以在 Spring Boot 应用中定义自己的带有错误码的异常,并使用全局异常处理器捕获并返回相应的错误响应。这样可以更好地管理和传递异常信息,使错误处理更加清晰和可控。