![]() |
Категория: PHP |
Название: Обработка ошибок в PHP | |
Дата добавления: 31-05-2012 | |
Раз просмотрено: 467 | |
Комментарии: 0 | |
Рейтинг: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Обработка ошибок в PHP
Ошибки — это обычное явление, с которыми сталкивается разработчик при программировании разработчик. Ошибки могут быть классифицированы, как синтаксические, логические и ошибки во время выполнения. Отсутствие точки с запятой в конце выражения — это синтаксическая ошибка, подключение к базе данных в то время, когда сервер упал — ошибка во время выполнения, подстановка неверных данных в переменную — логическая. Чтобы уменьшить количество ошибок в коде, и смягчить их последствия, в вашем веб-приложении должна быть надлежащая обработка ошибок. Эта статья представляет собой ускоренный курс по обработке PHP ошибок.
Уровни сообщений о PHP ошибках
Все ошибки и предупреждения должны быть зарегистрированы. В зависимости от серьезности ошибки, уведомления должны быть отправлены другим работникам или командам. Чтобы лучше оценить тяжесть ошибки, PHP предоставляет несколько встроенных уровней предупреждений, чтобы описать природу ошибки. Каждый уровень представлен целым числом или константой, которая может быть использована программистом. В приведенной ниже таблице описаны уровни сообщений о ошибках:
Константа | Описание |
---|---|
E_ERROR |
Фатальные ошибки во время выполнения. Это такие ошибки, после которых невозможно восстановиться, таких как проблема распределения памяти. Выполнение скрипта останавливается. |
E_WARNING |
Ошибки во время выполнения (не фатальные). Выполнение скрипта не останавливается. |
E_NOTICE |
Сообщения при выполнении. Показывает, что скрипт встретил что-то, что может быть ошибкой, но также может произойти при нормальном выполнении скрипта. |
E_DEPRECATED |
Сообщения, которые предупредят о коде, который не будет работать в будущих версиях PHP. |
E_STRICT |
Сообщения, которые предлагают изменения в вашем коде, которые обеспечат лучшее взаимодействие и совместимость с будущими версиями PHP. |
E_USER_ERROR |
Созданное пользователем сообщение об ошибке. Действует, как E_ERROR , за исключением того, что генерируется в PHP коде, при помощи функции triger_error() . |
E_USER_WARNING |
Созданное пользователем сообщение об ошибке. Действует, как E_WARNING , за исключением того, что генерируется в PHP коде, при помощи функции triger_error() . |
E_USER_NOTICE |
Созданное пользователем сообщение об ошибке. Действует, как E_NOTICE , за исключением того, что генерируется в PHP коде, при помощи функции triger_error() . |
E_USER_DEPRECATED |
Созданное пользователем сообщение об ошибке. Действует, как E_DEPRECATED , за исключением того, что генерируется в PHP коде, при помощи функции triger_error() . |
E_ALL |
Включает все PHP ошибки и предупреждения (кроме E_STRICT в PHP младше версии 5.4) |
Вы можете совмещать эти уровни при помощи бит-операторов, для включения или выключения их из конфигурации PHP. Например, E_ALL|E_STRICT
включает все ошибки и предупреждения с добавлением E_STRICT
(необходимо для PHP младше версии 5.4).
Директивы конфигурации
PHP предоставляет несколько директив конфигурации, которые связанны с регистрацией и отображением ошибок. Их значения, как правило, отличаются в зависимости от того, находится ли система в разработке, или производственной среде. Эта таблица показывает некоторые из директив, связанных с ошибками.
Директива | Описание | Предполагаемое значение для разработки | Предполагаемое значение для работы |
---|---|---|---|
error_reporting |
Устанавливает уровень сообщений об ошибках. | E_ALL|E_STRICT |
E_ALL|~E_NOTICE |
display_errors |
Устанавливает вывод ошибок на экран. | Включено | Выключено |
log_errors |
Устанавливает, должны ли сообщения об ошибках записываться в лог сервера. | Включено | Выключено |
Директивы конфигурации могут быть настроены в php.ini, файле настроек веб-сервера (httpd.conf или .htaccess), или во время выполнения скрипта, при помощи функции ini_set()
.
Создание своих обработчиков ошибок
Хорошей практикой считается не отображать необработанные и малопонятные ошибки пользователям. Сообщения об ошибках, которые отображаются, должны быть настроенными и дружелюбными по отношению к пользователю. PHP предоставляет нам возможность создавать свои, настраиваемые сообщения об ошибках. Ошибка любого уровня вызывается при помощи функции trigger_error()
. Например, это код вызывает предупреждение уровня E_USER_NOTICE
, если переменная $test
больше одного:
$test = 5; if($test > 1) { trigger_error('Переменная $test должна быть меньше или равна 1.', E_USER_NOTICE); }
Это интересно: «CSS таблицы для разного времени суток».
Ваш комментарий будет первым.