Встречается на собеседованиях • сегодня
Как сообщить пользователю об ошибке в Spring
В Spring можно обрабатывать ошибки и сообщать о них пользователю несколькими способами:
1. **@ExceptionHandler** - обработка исключений в контроллере:
```java
@ExceptionHandler(RuntimeException.class)
public ResponseEntity handleRuntimeException(RuntimeException ex) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST)
.body("Ошибка: " + ex.getMessage());
}
```
2. **@ControllerAdvice** - глобальная обработка исключений:
```java
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity handleAllExceptions(Exception ex) {
ErrorResponse error = new ErrorResponse("Произошла ошибка", ex.getMessage());
return new ResponseEntity<>(error, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
```
3. **ResponseStatusException** - для простых случаев:
```java
@GetMapping("/resource/{id}")
public Resource getResource(@PathVariable Long id) {
return repository.findById(id)
.orElseThrow(() -> new ResponseStatusException(
HttpStatus.NOT_FOUND, "Ресурс не найден"));
}
```
Для REST API рекомендуется возвращать структурированные JSON-ответы с кодом статуса HTTP и деталями ошибки.

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