项目框架采用springboot 3.2,请编写一个全局异常过滤器,发生异常时,反馈优化的提示语,返回结果是json
时间: 2024-09-25 08:17:46 浏览: 32
在Spring Boot 3.2项目中,创建全局异常过滤器通常涉及到自定义`WebMvcConfigurer`接口的实现。下面是一个简单的全局异常过滤器示例,它捕获所有的运行时异常,并提供优化的错误信息作为JSON响应:
```java
import org.springframework.boot.web.servlet.config.annotation.WebMvcConfigurer;
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 implements WebMvcConfigurer {
@Override
public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
// 如果你需要配置异步处理,添加相应代码
}
/**
* 当遇到未处理的异常时,返回JSON格式的错误信息
*/
@ExceptionHandler(Exception.class)
public ResponseEntity<ErrorResponse> handleException(Exception e) {
ErrorResponse errorResponse = new ErrorResponse();
errorResponse.setMessage("发生了未知错误");
errorResponse.setErrorCode("500");
return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
}
private static class ErrorResponse {
private String message;
private String errorCode;
// getters and setters
}
}
```
在这个例子中,`ErrorResponse`类用于封装错误信息,当抛出异常时,它会被转换成JSON格式返回给客户端。`handleException`方法捕获所有类型的异常,你可以根据实际需求添加更具体的异常处理器来处理特定类型的异常。
阅读全文