Вече потърсих отговора на този въпрос и намерих следните предложения:
- Ако винаги очаквате да намерите стойност, хвърлете изключението, ако липсва. Изключението би означавало, че има проблем. Ако стойността може да липсва или да присъства и двете са валидни за логиката на приложението, тогава се връща нула.
- Хвърлете изключение само ако наистина е грешка. Ако се очаква обектът да не съществува, върнете нулата.
Но как трябва да ги тълкувам в моя (толкова случаен) случай: контролерът на моето уеб приложение получава заявка за показване на подробности за потребител с определен идентификатор. Контролерът иска от сервизния слой да получи потребителя и след това услугата връща обекта, ако бъде намерен. Ако не, се издава пренасочване към местоположението по подразбиране.
Какво трябва да направя, когато някой предаде невалиден потребителски идентификатор в URL адреса на заявката? Трябва ли да го считам за „очаквано поведение“ и да върна null на контролера, или може би трябва да го нарека „проблем или неочаквано поведение“ и по този начин да хвърля изключение в метода на услугата и да се хвана вътре в контролера?
Технически в крайна сметка не е голяма разлика, но бих искал да го направя по правилния начин, като следвам стандартните правила. Благодаря предварително за всякакви предложения.
РЕДАКТИРАНЕ: Предполагам, че URL адресите, генерирани от приложението, са валидни и съществуващи - когато щракне от потребител, трябва да бъде намерен потребителят с определен идентификатор. Искам да знам как да се справя със ситуация, когато потребител се опита да получи достъп до URL адрес с грешен (несъществуващ) потребителски идентификатор, като ръчно въведе URL адреса в адресната лента на браузъра.