Всем привет, прошу совет, есть сервис отчетов в этом сервисе есть метод:
public Report getReportByName(String reportName) {
return reportRepository.findOneByName(reportName)
.orElseThrow(() -> new EntityNotFoundException("Report with name " + reportName + " was not found"));
}
Вызывающему коду нужно из отчета получить его id для дальнейшей работы.
Правильно ли в случае отсутствия отчета в базе выкидывать эксепшен?
Или сервис должен в этом случае вернуть вызывающему коду null обернутый в Optional?
Как договоритесь в команде и как у вас стандарты кода прописаны. Можете возвращать Optional<Report> из метода и пусть тот, кому отчет нужен, с ним и разбирается.
Можете кидать исключение, тогда лучше явно договориться, что все поиски в базе данных у вас кидают исключение, если данных нет.
Можете возвращать null, тогда тот, кому нужен отчет, должен его обрабатывать
Я бы, наверное, возвращал Optional, а в вызывающем коде писал бы optionalReport.ifPresent(//запустить отчет)
Но, ещё раз повторю, лучше договориться в команде о таких ситуациях и занетсти в стандарты кода