Встречается на собеседованиях • сегодня

Как организовать работу с исключениями в проекте с несколькими REST-контроллерами, каждый из которых реализует CRUD-операции для разных сущностей

Лучше всего создать глобальный обработчик исключений через `@ControllerAdvice`. Это позволит централизованно обрабатывать исключения для всех контроллеров. Пример структуры: ```java @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(EntityNotFoundException.class) public ResponseEntity handleEntityNotFound(EntityNotFoundException ex) { ErrorResponse error = new ErrorResponse("Not Found", ex.getMessage()); return new ResponseEntity<>(error, HttpStatus.NOT_FOUND); } @ExceptionHandler(MethodArgumentNotValidException.class) public ResponseEntity handleValidation(MethodArgumentNotValidException ex) { List errors = ex.getBindingResult() .getFieldErrors() .stream() .map(FieldError::getDefaultMessage) .collect(Collectors.toList()); ErrorResponse error = new ErrorResponse("Validation Failed", errors.toString()); return new ResponseEntity<>(error, HttpStatus.BAD_REQUEST); } } ``` Ключевые моменты: 1. Создаем собственные бизнес-исключения (например, `EntityNotFoundException`) 2. Используем стандартные исключения Spring (`MethodArgumentNotValidException`) 3. Возвращаем унифицированный `ErrorResponse` с деталями ошибки 4. Задаем соответствующие HTTP-статусы Для валидации DTO можно использовать аннотации jakarta.validation (`@NotNull`, `@Size` и т.д.)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы