Я уже искал ответ на этот вопрос и нашел следующие предложения:
- Если вы всегда ожидаете найти значение, тогда вызовите исключение, если оно отсутствует. Исключение будет означать, что возникла проблема. Если значение может отсутствовать или присутствовать, и оба значения допустимы для логики приложения, верните значение NULL.
- Выбрасывайте исключение только в том случае, если это действительно ошибка. Если ожидается, что объект не существует, верните значение null.
Но как мне интерпретировать их в моем (таком случайном) случае: контроллер моего веб-приложения получает запрос на отображение сведений для пользователя с определенным идентификатором. Контроллер просит уровень сервиса получить пользователя, а затем сервис возвращает объект, если он найден. В противном случае выдается перенаправление в местоположение «по умолчанию».
Что мне делать, если кто-то передает неверный идентификатор пользователя в URL-адрес запроса? Должен ли я рассматривать это как «ожидаемое поведение» и возвращать значение null контроллеру, или, возможно, мне следует называть это «проблемой или неожиданным поведением» и, таким образом, генерировать исключение внутри метода службы и ловить его внутри контроллера?
Технически это не большая разница, но я бы хотел сделать это правильно, следуя стандартным правилам. Спасибо заранее за любые предложения.
РЕДАКТИРОВАТЬ: Я предполагаю, что URL-адреса, сгенерированные приложением, действительны и существуют - при нажатии пользователем должен быть найден пользователь с идентификатором сертификата. Я хочу знать, как справиться с ситуацией, когда пользователь пытается получить доступ к URL-адресу с неправильным (не существующим) идентификатором пользователя, вручную вводя URL-адрес в адресную строку браузера.