Зачем нужны исключения?
Вместо ожидаемого массива вы получите строку. Поведение функции не определено.
Исключения можно обработать все, подобную хрень (извините за выражения, но по-другому это не назовешь) - не обработать никак.
У исключения есть бектрейс, у вашего решения его нет - отследить как почему и откуда вылезла эта ошибка становится трудней. 
Исключения можно выбрасывать в любом месте, ваш подход требует пробрасывания ответа об ошибке до контроллера, что является грубым нарушением принципа инкапсуляции.
Вообще, вопрос очень странный, джуниорам за такие вопросы надо проводить профилактическую беседу про ООП и обработку ошибок, а за подобный код - бить по рукам палкой.
В данном примере все не правильно -  уместнее всего вернуть пустой массив или объект, реализующий интерфейс Countable (при условии, что в случае нахождения новостей они все также складируются в этот объект). 
Отсутствие новости - НЕ исключительная ситуация. Пример не правильный на все 100%. 
Исключительная ситуация - мы не может к СУБД законнектиться, что бы новости получить.
А исключения нужны, Ты просто их не умеешь готовить и не понимаешь, что это такое. В интернете об исключениях масса информации. Нет смысла объяснять тут.