springboot 捕获404异常返回json
时间: 2024-09-11 12:16:42 浏览: 53
在Spring Boot项目中,为了捕获404(Not Found)异常并将其转化为JSON格式的响应返回给客户端,通常我们会利用全局异常处理器(Global Exception Handler)。你可以创建一个`@ControllerAdvice`注解的类,并在里面定义一个处理`NotFoundException`的方法。这里是一个简单的示例:
```java
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(NotFoundException.class)
public ResponseEntity<Object> handleResourceNotFoundException(NotFoundException ex) {
// 创建一个包含错误信息的对象
ErrorResponse error = new ErrorResponse();
error.setMessage("资源未找到");
error.setStatusCode(HttpStatus.NOT_FOUND.value());
// 使用ResponseEntity包装该对象,指定HTTP状态码
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(error);
}
// 示例错误响应类
private static class ErrorResponse {
private String message;
private int statusCode;
// getters and setters
}
}
```
在这个例子中,当`NotFoundException`被抛出时,`handleResourceNotFoundException`方法会被调用,返回一个包含错误消息和状态码的JSON响应。
阅读全文