PHP будет сообщать об ошибках, предупреждениях и уведомлениях для многих распространенных проблем с программированием и выполнением, и знание того, как обнаруживать и обрабатывать эти ошибки, значительно облегчит отладку.
PHP сообщает об ошибках в ответ на ряд внутренних ошибок. Их можно использовать для сигнализации ряда различных условий, а также отображать и/или регистрировать по мере необходимости.
Каждая ошибка, которую генерирует PHP, включает тип.
Обработка ошибок с помощью PHP
Если обработчик ошибок не установлен, PHP будет обрабатывать любые возникающие ошибки в соответствии с его конфигурацией. Какие ошибки сообщаются, а какие игнорируются, контролируется error_reporting
директивой php.ini или во время выполнения, вызывая error_reporting() . Однако настоятельно рекомендуется установить директиву конфигурации, так как некоторые ошибки могут возникнуть до начала выполнения вашего скрипта.
В среде разработки всегда следует устанавливать error_reporting
значение E_ALL
, так как вам необходимо знать и устранять проблемы, возникающие в PHP. В производственной среде вы можете установить менее подробный уровень, например E_ALL & ~E_NOTICE & ~E_DEPRECATED
, но во многих случаях E_ALL
это также уместно, поскольку может обеспечить раннее предупреждение о потенциальных проблемах.
То, что PHP делает с этими ошибками, зависит от двух дополнительных директив php.ini. display_errors
определяет, отображается ли ошибка как часть вывода скрипта. Это всегда следует отключать в производственной среде, поскольку она может включать конфиденциальную информацию, такую как пароли базы данных, но часто бывает полезно включить ее в процессе разработки, поскольку она обеспечивает немедленное сообщение о проблемах.
В дополнение к отображению ошибок PHP может регистрировать ошибки, когда log_errors
директива включена. При этом любые ошибки будут записываться в файл или системный журнал, определенный параметром error_log
. Это может быть чрезвычайно полезно в производственной среде, поскольку вы можете регистрировать возникающие ошибки, а затем создавать отчеты на основе этих ошибок.
Обработчики пользовательских ошибок
Если обработка ошибок PHP по умолчанию неадекватна, вы также можете обрабатывать многие типы ошибок с помощью своего собственного обработчика ошибок, установив его с помощью set_error_handler() . В то время как некоторые типы ошибок не могут быть обработаны таким образом, те, которые могут быть обработаны, могут быть обработаны так, как считает нужным ваш сценарий: например, это можно использовать для отображения пользовательской страницы ошибки для пользователя, а затем отчет более непосредственно, чем через журнал, например, по электронной почте.
0 комментариев