Sobes.tech
Назад к вопросам
Junior — Middle
59

Какие методы или механизмы обработки ошибок вы используете в REST-контроллерах?

Компании, где спрашивали
SimbirsoftSimbirsoft

Ответ от нейросети

sobes.tech AI

В REST-контроллерах на Java для обработки ошибок обычно применяются следующие методы:

  • Использование аннотации @ExceptionHandler в контроллере или в отдельном классе с @ControllerAdvice для централизованной обработки исключений.
  • Возврат корректных HTTP-статусов с описанием ошибки в теле ответа, например, 400 для ошибок клиента, 500 для ошибок сервера.
  • Создание кастомных классов исключений для разных типов ошибок (например, ResourceNotFoundException, ValidationException).

Пример обработки исключения с @ControllerAdvice:

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(ResourceNotFoundException.class)
    public ResponseEntity<String> handleNotFound(ResourceNotFoundException ex) {
        return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
    }

    @ExceptionHandler(Exception.class)
    public ResponseEntity<String> handleGeneral(Exception ex) {
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Внутренняя ошибка сервера");
    }
}

Такой подход позволяет отделить логику обработки ошибок от бизнес-логики и обеспечить единообразный формат ответов при ошибках.