对于自定义的业务异常,提取异常中的错误码和消息等信息,转换为合适的 API 包装体返回给 API 调用方。注意规范定义简言赅的异常信息。
时间: 2024-12-19 07:21:09 浏览: 5
在API设计中,当发生自定义业务异常时,首先需要捕获并分析这些异常,提取关键的错误信息,如错误码(Error Code)、详细描述(Error Message)以及可能需要的额外上下文数据。然后,将这些信息封装到专门的API异常对象或响应体中,以便客户端能清晰地理解问题所在。
例如,可以创建一个通用的`ApiException`类,它包含两个基本属性:
```java
public class ApiException {
private int errorCode;
private String errorMessage;
public ApiException(int errorCode, String errorMessage) {
this.errorCode = errorCode;
this.errorMessage = errorMessage;
}
// getters and setters for error code and message
public int getErrorCode() {
return errorCode;
}
public String getErrorMessage() {
return errorMessage;
}
}
```
当有特定的业务异常发生时,可以根据具体的异常类型将其包装成`ApiException`实例:
```java
public class CustomBusinessException extends ApiException {
public CustomBusinessException(String message, int code) {
super(code, message);
}
}
// 使用示例
try {
// 业务逻辑
} catch (SpecificBusinessException e) {
throw new ApiException(e.getCode(), e.getMessage());
}
```
然后在API的处理层面上,将这个`ApiException`作为HTTP响应的状态码和主体返回给调用者:
```java
@GetMapping("/api/resource")
public ResponseEntity<ApiException> getResource() {
try {
// 获取资源
} catch (CustomBusinessException ex) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST)
.body(ex);
}
// 如果一切正常,返回成功状态
return ResponseEntity.ok().build();
}
阅读全文