Встречается на собеседованиях • сегодня
Как обработать ошибки в Spring Web MVC
В Spring Web MVC ошибки можно обрабатывать несколькими способами:
1. **@ExceptionHandler** - обработка исключений в пределах контроллера:
```java
@RestController
public class MyController {
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity handleNotFound(ResourceNotFoundException ex) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
}
}
```
2. **@ControllerAdvice** - глобальная обработка исключений:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity handleAll(Exception ex) {
return ResponseEntity.internalServerError()
.body(new ErrorResponse("Server error", 500));
}
}
```
3. **ResponseStatusException** - для быстрого возврата статуса:
```java
@GetMapping("/resource/{id}")
public Resource getResource(@PathVariable Long id) {
return repository.findById(id)
.orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND));
}
```
4. **ErrorController** - кастомная обработка базовых ошибок (404, 500 и т.д.)
Лучше комбинировать эти подходы: использовать @ControllerAdvice для глобальных исключений и @ExceptionHandler для специфичных случаев.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы