springboot如何做全局异常处理
时间: 2023-09-22 14:09:24 浏览: 56
在Spring Boot中,可以通过自定义全局异常处理器来处理应用程序中的异常。以下是一种常见的实现方式:
1. 创建一个自定义的异常处理器类,例如 `GlobalExceptionHandler`。
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception ex) {
// 处理异常逻辑
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error");
}
@ExceptionHandler(YourCustomException.class)
public ResponseEntity<String> handleYourCustomException(YourCustomException ex) {
// 处理自定义异常逻辑
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(ex.getMessage());
}
// 可以继续添加其他的异常处理方法
}
```
2. 在 `GlobalExceptionHandler` 类上使用 `@ControllerAdvice` 注解,以告诉Spring该类为全局异常处理器。
3. 在 `handleException` 方法中,可以根据不同的异常类型进行处理,例如返回不同的HTTP状态码和错误信息。
4. 如果有自定义的异常,可以在 `GlobalExceptionHandler` 类中添加对应的异常处理方法。
5. 在异常发生时,Spring Boot将会调用匹配的异常处理方法来处理异常。如果没有匹配的方法,将会调用默认的异常处理方法。
这样,当应用程序中出现异常时,就会被全局异常处理器捕获,并根据相应的处理逻辑返回错误响应。
注意:以上只是一种实现方式,你可以根据具体需求进行自定义。