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

Как обрабатывать ошибки в Spring

В Spring ошибки можно обрабатывать с помощью `@ExceptionHandler` и `@ControllerAdvice`. 1. **Локальная обработка в контроллере:** ```java @RestController public class MyController { @ExceptionHandler(RuntimeException.class) public ResponseEntity handleRuntimeException(RuntimeException ex) { return ResponseEntity.status(500).body("Error: " + ex.getMessage()); } } ``` 2. **Глобальная обработка через `@ControllerAdvice`:** ```java @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(ResourceNotFoundException.class) public ResponseEntity handleResourceNotFound(ResourceNotFoundException ex) { return ResponseEntity.status(404).body(ex.getMessage()); } } ``` 3. **Кастомные исключения:** ```java public class ResourceNotFoundException extends RuntimeException { public ResourceNotFoundException(String message) { super(message); } } ``` Также можно использовать `ResponseStatusException` для быстрой обработки: ```java @GetMapping("/item/{id}") public Item getItem(@PathVariable Long id) { return repository.findById(id) .orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND, "Item not found")); } ``` Лучшие практики: - Использовать HTTP-статусы правильно (404 для "Not Found", 400 для "Bad Request" и т.д.). - Логировать ошибки. - Возвращать структурированный JSON вместо plain text.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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