springboot 自定义异常
时间: 2024-10-12 09:04:08 浏览: 29
Spring Boot允许开发者自定义异常处理来提供更具体的错误信息和统一的响应格式。自定义异常通常通过创建一个新的异常类来实现,这个类可以继承`org.springframework.http.ResponseEntity`、`SpringBootException`或者其他Spring提供的异常基类。步骤如下:
1. 创建一个继承自`ResponseEntity`或`ExceptionHandler`的新的异常类,比如`MyCustomException`。
```java
public class MyCustomException extends ResponseEntity<ErrorResponse> {
private static final long serialVersionUID = 1L;
// 构造函数,可以包含错误码、错误消息等详细信息
public MyCustomException(HttpStatus status, String message) {
super(status, new ErrorResponse(message), status.value());
}
// 如果需要,可以添加其他构造函数和getter/setter
}
```
2. 在`@ControllerAdvice`注解的类中,使用`@ExceptionHandler`处理特定类型的异常,并返回自定义的错误响应。
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MyCustomException.class)
@ResponseBody
public ErrorResponse handleCustomException(MyCustomException ex) {
return ex.getBody();
}
// 可能还包括对其他异常的处理
}
```
在这个例子中,当控制器抛出`MyCustomException`时,Spring Boot会自动将其转换成JSON格式并返回给客户端。
阅读全文