Spring Boot中404异常怎么处理,请你给我写代码。
时间: 2024-01-22 19:19:47 浏览: 96
spring boot 异常处理方案
在Spring Boot中,处理404异常可以通过自定义异常处理器来实现。以下是一个简单的示例代码:
首先,创建一个自定义异常类,如下所示:
```java
@ResponseStatus(HttpStatus.NOT_FOUND)
public class ResourceNotFoundException extends RuntimeException {
public ResourceNotFoundException(String message) {
super(message);
}
}
```
然后,在控制器中抛出异常:
```java
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {
User user = userRepository.findById(id)
.orElseThrow(() -> new ResourceNotFoundException("User not found with id " + id));
return user;
}
```
最后,创建一个全局异常处理器来处理404异常:
```java
@ControllerAdvice
public class RestExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity<Object> handleResourceNotFoundException(ResourceNotFoundException ex) {
ApiError apiError = new ApiError(HttpStatus.NOT_FOUND, ex.getMessage());
return new ResponseEntity<>(apiError, apiError.getStatus());
}
}
```
在上面的代码中,我们使用@ControllerAdvice注解来标记一个全局异常处理器,并使用@ExceptionHandler注解来指定需要处理的异常类型。
在handleResourceNotFoundException方法中,我们创建一个ApiError对象,其中包含错误的HTTP状态码和错误消息。然后,我们将ApiError对象作为响应实体返回给客户端。
注意:在上面的代码中,我们继承了ResponseEntityExceptionHandler类,它提供了一些默认的异常处理方法,例如处理HttpMessageNotReadableException、MethodArgumentNotValidException等异常。
阅读全文