Встречается на собеседованиях • сегодня
Как обработать ошибку в Spring Web
В Spring Web ошибки можно обрабатывать с помощью `@ControllerAdvice` и `@ExceptionHandler`. Это позволяет централизованно перехватывать исключения и возвращать клиенту структурированный ответ.
Пример:
```java
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity handleResourceNotFound(ResourceNotFoundException ex) {
ErrorResponse error = new ErrorResponse(
"NOT_FOUND",
ex.getMessage(),
HttpStatus.NOT_FOUND.value()
);
return new ResponseEntity<>(error, HttpStatus.NOT_FOUND);
}
@ExceptionHandler(Exception.class)
public ResponseEntity handleAllExceptions(Exception ex) {
ErrorResponse error = new ErrorResponse(
"INTERNAL_ERROR",
"Something went wrong",
HttpStatus.INTERNAL_SERVER_ERROR.value()
);
return new ResponseEntity<>(error, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
```
Ключевые моменты:
- `@ControllerAdvice` перехватывает исключения со всех контроллеров
- `@ExceptionHandler` указывает, какие исключения обрабатывать
- Можно возвращать кастомные DTO с деталями ошибки
- Можно задавать разные HTTP-статусы для разных ошибок
- Порядок обработки: сначала специфичные исключения, потом общие

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