Задать вопрос

Нужно ли обрабатывать фатальные ошибки в PHP?

Нужно ли обрабатывать фатальные ошибки в PHP ?
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
beliyadm
@beliyadm
because open source matters
Естественно, Fatal Error - значит нужная вам функция не отработала и с вероятностью в 90% будет белый экран.
Нотисы и варнинги в принципе необязательно, а вот ошибки да
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
Ответ на этот вопрос очень простой.
Сначала надо ответить себе на вопрос, что значит "обрабатывать". Что конкретно ты имеешь ввиду под этим словом. Какие конкретно действия, какой код.
Как только ты себе на него ответишь - тут же станет очевидным и ответ на вопрос - нужно ли.

ЗЫ: https://phpdelusions.net/articles/error_reporting#fatal
Ответ написан
Комментировать
@rPman
Если я верно понял вопрос, речь идёт об организации контроля над фатальными ошибками и следующие действия.

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

Первое, что приходит на ум, попытаться повторить попытку и отложить сообщение в лог. Но делать это безопасно можно только если в системе реализована атомарность операций, т.е. вы уверены что прекрасную операцию безопасно повторить. Пример опасных мест - вы отсылает SMS но при попытке сохранить об этом информацию, получаете ошибку, если вы повторите попытку, смс ещё раз будет отослана, в бесконечном цикле это обнулит ваши бюджеты.

Наиболее легко получает народ ошибки такого рода, когда заканчивается место на диске или ram.

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

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

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

Войдите, чтобы написать ответ

Похожие вопросы