Дополню ответ
Максим :
В своих проектах я всегда начинаю с того, что пишу какой-то базовый Exception, типа AppException, который всегда ловится Exception Handler'ом и отдает инфу юзеру. Он же висит в списке $dontReport, так как это всегда ожидаемая мной ошибка, о которой я не хочу быть уведомленным.
Собственно если я хочу, что бы ошибка попала в логи, потому что такой ситуации не должно быть - обычные встроенные эксепшены типа AssertionError, IllegalArgument, LogicException и так далее. Если не хочу - AppException и наследованые от нее.
Тогда почти везде в контроллерах пропадают try-catch'и за счет exception handler'а.