SPringBoot全局异常处理
时间: 2024-10-24 11:01:09 浏览: 15
Spring Boot 提供了一种简单的方式来配置全局异常处理,这样在整个应用中可以统一处理各种运行时错误。通常,你可以在Spring Boot项目的`application.properties`或`application.yml`文件中设置`spring-boot.bind-initializers`属性,将自定义的全局异常处理器初始化类路径下。
创建全局异常处理器的一般步骤如下:
1. 创建一个实现了`org.springframework.web.servlet.HandlerExceptionResolver`接口的类,比如`GlobalExceptionHandler`。这个类需要覆盖`resolveException()`方法,接收并处理`HttpServletRequest`、`HttpServletResponse`和`Throwable`作为参数。
```java
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.servlet.ModelAndView;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value = Exception.class)
public ResponseEntity<Object> handleAllExceptions(Exception ex) {
// Log the exception
logger.error("An unexpected error occurred", ex);
// Prepare a response with an appropriate status code and message
return new ResponseEntity<>(new ErrorResponse(HttpStatus.INTERNAL_SERVER_ERROR.value(), ex.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
}
private static class ErrorResponse {
int code;
String message;
// Constructor and getters/setters...
}
}
```
在这个例子中,如果应用程序遇到任何未处理的异常,它会返回一个包含错误码和消息的响应。
阅读全文