Поиск
Подписаться
Разное

Валидный XHTML 1.0 Transitional

Валидный RSS

Обработка ошибок в PHP Категория: PHP
Название: Обработка ошибок в PHP
Дата добавления: 31-05-2012
Раз просмотрено: 467
Комментарии: 0
Рейтинг: * * * * * * * * * * (1 голос)

Обработка ошибок в 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 таблицы для разного времени суток».

Понравился материал? Расскажи о нем всем:
Оцените эту статью:
Прокомментируйте:
Ваше имя:

Ваш комментарий будет первым.