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

21 Авг 2019 в 07:02
156 +1
0
Ответы
1

Ваше рассуждение имеет смысл, и в нем действительно есть зерно правды. Обработка исключений действительно полезна в случаях, когда требуется специфическая обработка ошибок или необходимо выполнить определенные действия при возникновении определенной ситуации.

Однако, использование исключений во фреймворке также может иметь и другие плюсы. Например, использование исключений может упростить код и сделать его более читаемым, так как при возникновении ошибки не нужно писать длинные условия для проверки наличия ошибок.

Кроме того, использование исключений позволяет выполнять комплексные операции в обработчиках исключений, например, фиксацию ошибки в логах или отправку уведомлений разработчикам.

Если вы бросаете много собственных исключений и каждое из них требует собственной обработки, возможно, стоит задуматься о рефакторинге вашего кода. Возможно, некоторые исключения можно объединить или обработать общим обработчиком исключений.

Итак, обработка исключений может иметь свои плюсы и минусы, и решение о ее использовании в вашем фреймворке зависит от конкретных задач, которые вы перед собой ставите.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 541 автору
Первые отклики появятся уже в течение 10 минут
Прямой эфир