Spring MVC - должен ли сервис возвращать опционально или генерировать исключение? - PullRequest
1 голос
/ 21 марта 2019

У меня есть метод Optional<Product> findProduct(long productId) в моем классе ProductDao.

  • Если мой класс обслуживания (ProductService) распространяется Optional и возвращает Optional<Product>, тогда Controller проверяет, если отсутствует?
  • Или, может быть, мой класс обслуживания должен проверить, еслиOptional отсутствует и выбрасывает ProductNotFoundException?

Я использую @ControllerAdvice и @ExceptionHandler для обработки ProductNotFoundException и возвращаю правильный View.Поэтому мое исключение будет правильно обработано в обоих решениях.

1 Ответ

0 голосов
/ 21 марта 2019

Необязательно, на самом деле не предназначен для работы с исключениями, он был предназначен для работы с потенциальными нулями без прерывания потока вашей программы.

Вы можете сделать что-то подобное в своем классе обслуживания

optional.orElseThrow(() -> new RuntimeException("ProductNotFoundException"));

, что в основном означает , возвращает мое необязательное значение, но выдает исключение, если оно недоступно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...