Всем привет! Сейчас проектирую свой фреймворк. Раньше писал на yii2. Решил внедрить обработку исключений в ядро фреймворка. Прочитал эту
https://habrahabr.ru/post/30399/ и еще несколько статей об обработке исключений. На практике начал писать классы исключений и бросать их в коде. Между тем при установке xdebug, уже можно увидеть красивый стек вызовов в табличке вместе с ошибкой, пути к файлу и строчки где возникла ошибка. Когда же я начинаю бросать кастомные исключения, то мало того, что мне необходимо писать писать блок catch для его обработки (а иначе выбрасывается еще и ошибка о не пойманном исключении - Uncaught exception), так еще и красивая табличка со стеком пропадает и ее приходится создавать самому (изобретая велосипед). Какой вывод сделал я: если бросаю где-то исключение (Exception или какое-то свое), то под него я обязан написать блок catch, и изобрести красивый вывод стека заново, соответственно если у меня будет 20 моих кастомных исключений, я должен буду написать 20 блоков catch (если моя цель - это вывод уникального сообщения об ошибки и стека функций, то это не рационально). Причем, если не бросать исключение, то ошибку мне все равно выдаст, в красивой рамочке. У меня сложилось такое впечатление, что обработка исключений выгодна лишь тогда, когда действительно необходимо написать какой-то обработчик (а не просто выводить сообщение об ошибке и стек). В чем же тогда выгода использования исключений во фреймворке, какие Ваши мысли?
Прошу не придераться к словам и указать на ошибки в моих рассуждениях, если они есть, спасибо.