spring boot 3.0 全局异常处理
时间: 2025-01-02 21:18:58 浏览: 13
### 实现全局异常处理
在 Spring Boot 3.0 中实现全局异常处理可以通过 `@ControllerAdvice` 和 `@ExceptionHandler` 注解来完成。此类通常还会带有 `@Component` 或者其他组件扫描能够识别的注解,以便自动注册到 Spring 容器中[^1]。
创建一个实现了全局异常处理功能的类如下:
```java
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception ex) {
return new ResponseEntity<>("An unexpected error occurred: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
```
这段代码展示了如何定义一个简单的全局异常处理器,它可以捕捉所有的未被捕获的 `Exception` 并返回 HTTP 500 错误码以及一条消息给客户端[^2]。
为了确保此机制正常工作,项目应包含 `spring-boot-starter-web` 依赖项,这是构建基于 web 的应用程序所必需的基础库之一[^3]。
如果希望提供更详细的错误页面而不是默认的信息,还可以自定义 BasicErrorController 来改变其行为或重写其中的方法以适应特定的需求[^4]。
这种做法不仅简化了开发过程中的异常管理流程,而且有助于保持良好的编码习惯和提升系统的健壮性[^5]。
阅读全文