На самом деле нет одного правильного подхода. Зависит от бизнеслогики. Например, запрашиваем статью по слагу. Статьи нет, кидается эксепшен. Ищем статьи по тегу. Статей нет, возвращаем нулл или пустой массив. Ошибки тут нет, эксепшен кидать странно
ну вот не согласен насчет экзепшена при запросе статьи по слагу
это вполне предсказуемый результат что иногда могут запросить то чего нет и кидать тут экзепшен нет смысла.
экзепшен нужен там где результат мало предсказуемый
например хочешь записать в файл, а место на диске кончилось (можно сказать что предсказуеый, но каждый раз обрабатывать эту ситуацию мало хочется)
или например пишешь данные на диск и бац он из строя вышел, тоже исключение норм вариант
или ты пишешь в файл, а файл на удаленном сервере и в этот момент разрыв коннекта был и тут уже сетевое исключение