springboot全局异常处理类
时间: 2023-08-21 13:08:19 浏览: 51
在Spring Boot中,可以通过编写一个全局异常处理类来捕获并处理应用程序中的异常。以下是一个示例:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<ErrorResponse> handleException(Exception ex) {
ErrorResponse errorResponse = new ErrorResponse();
errorResponse.setMessage("Internal Server Error");
errorResponse.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
}
@ExceptionHandler(NotFoundException.class)
public ResponseEntity<ErrorResponse> handleNotFoundException(NotFoundException ex) {
ErrorResponse errorResponse = new ErrorResponse();
errorResponse.setMessage(ex.getMessage());
errorResponse.setStatus(HttpStatus.NOT_FOUND.value());
return new ResponseEntity<>(errorResponse, HttpStatus.NOT_FOUND);
}
// 添加其他自定义异常的处理方法
}
```
在上面的示例中,`@ControllerAdvice`注解用于声明这是一个全局异常处理类。`@ExceptionHandler`注解用于指定处理特定异常类型的方法。
在`handleException`方法中,我们处理了 `Exception` 类型的异常,并返回一个包含错误信息和状态码的 `ErrorResponse` 对象。
在`handleNotFoundException`方法中,我们处理了自定义的 `NotFoundException` 类型的异常,并返回一个包含错误信息和状态码的 `ErrorResponse` 对象。
你可以根据自己的需求添加其他的异常处理方法。确保在每个处理方法中返回合适的 `ErrorResponse` 对象。
注意:为了让Spring Boot自动扫描到该全局异常处理类,需要将它放在主应用程序类所在的包或子包中。