Sobes.tech
Junior — Middle
109

Koje metode ili mehanizme za obradu grešaka koristite u REST kontrolerima?

Компаније где су питане
SimbirsoftSimbirsoft

Одговор од АИ

sobes.tech АИ

В 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("Внутренняя ошибка сервера");
    }
}

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