springboot全局异常处理
时间: 2023-09-03 10:15:38 浏览: 90
在 Spring Boot 中,可以通过实现 `@RestControllerAdvice` 注解的类来创建全局异常处理器。
首先,在项目中创建一个异常处理器类,例如 `GlobalExceptionHandler`,并使用 `@RestControllerAdvice` 注解标记该类。然后,在该类中定义方法,使用 `@ExceptionHandler` 注解来捕获特定的异常类型,并返回自定义的响应信息。例如:
```java
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value = {Exception.class})
public ResponseEntity<String> handleException(Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("服务器内部错误");
}
@ExceptionHandler(value = {CustomException.class})
public ResponseEntity<String> handleCustomException(CustomException e) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage());
}
}
```
在上面的代码中,`handleException` 方法捕获了所有类型的异常,并返回一个 500 错误码和一个错误信息。`handleCustomException` 方法捕获了 `CustomException` 类型的异常,并返回一个 400 错误码和异常信息。
最后,在项目中的 `application.properties` 文件中添加以下配置,启用全局异常处理器:
```properties
spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false
```
这样,当项目中的任何地方出现异常时,全局异常处理器都会被触发,然后根据异常类型返回自定义的响应信息。
阅读全文