Функция set_error_handler() устанавливает определяемую пользователем функцию обработки ошибок.
Эта функция используется для создания собственного метода обработки ошибок пользователя во время выполнения.
Эта функция возвращает старый обработчик ошибок или NULL в случае сбоя.
set_error_handler(error_function,error_types)
параметр | описывать |
---|---|
ошибка_функция | Необходимый. Указывает функцию, которая будет запускаться при возникновении ошибки. |
типы_ошибок | Необязательный. Указывает, на каком уровне отчетов об ошибках отображаются определяемые пользователем ошибки. По умолчанию установлено «E_ALL». Возможные уровни сообщений об ошибках подробно описаны в таблице ниже. |
функция_ошибки(уровень_ошибки,сообщение_ошибки,файл_ошибки,строка_ошибки,контекст_ошибки)
параметр | описывать |
---|---|
уровень_ошибки | Необходимый. Указывает уровень отчетов об ошибках, определяемых пользователем. Должно быть числовое значение. Возможные уровни сообщений об ошибках подробно описаны в таблице ниже. |
error_message | Необходимый. Указывает сообщение об ошибках, определяемых пользователем. |
файл_ошибки | Необязательный. Указывает имя файла, в котором произошла ошибка. |
error_line | Необязательный. Указывает номер строки, в которой произошла ошибка. |
error_context | Необязательный. Указывает массив, указывающий на активную таблицу символов, в которой произошла ошибка. Другими словами, error_context будет содержать массив, описывающий экзистенциальную область видимости, в которой каждая переменная выдает ошибку. |
ценить | постоянный | описывать |
---|---|---|
2 | Э_ПРЕДУПРЕЖДЕНИЕ | Нефатальная ошибка времени выполнения. Выполнение скрипта не останавливается. |
8 | Э_УВЕДОМЛЕНИЕ | Уведомления во время выполнения. Обнаружение сценария может быть ошибкой, но может произойти и при обычном запуске сценария. |
256 | E_USER_ERROR | Фатальная ошибка, сгенерированная пользователем. Это похоже на ошибку E_ERROR, сгенерированную программистом с помощью функции PHP триггер_error(). |
512 | E_USER_WARNING | Нефатальная ошибка, сгенерированная пользователем. Это похоже на E_WARNING, сгенерированное программистом с помощью функции PHP триггер_ошибка(). |
1024 | E_USER_NOTICE | Уведомления, генерируемые пользователем. Это похоже на сообщение E_NOTICE, сгенерированное программистом с помощью функции PHP триггер_ошибка(). |
4096 | E_RECOVERABLE_ERROR | Уловимые фатальные ошибки. Это похоже на E_ERROR, который может быть перехвачен пользовательским дескриптором (см. set_error_handler()). |
8191 | Е_ВСЕ | Все уровни ошибок и предупреждений, кроме E_STRICT (начиная с PHP 6.0, E_STRICT будет частью E_ALL). |
Совет: Если используется эта функция, стандартные функции обработки ошибок PHP будут полностью пропущены. При необходимости определяемый пользователем обработчик ошибок должен завершить выполнение сценария (die()). Примечание. Если ошибка возникает до выполнения сценария, пользовательский обработчик ошибок не будет использоваться, поскольку в это время пользовательская программа не была зарегистрирована.
<?php//функция обработчика ошибок function customError($errno, $errstr, $errfile, $errline) { echo "<b>Пользовательская ошибка:</b> [$errno] $errstr<br />"; Ошибка в строке $errline в $errfile<br />"; echo "Ending Script"; die(); }//установить ошибку handlerset_error_handler("customError");$test=2;//trigger errorif ($test>1) { ignore_error("Произошла пользовательская ошибка" }?>
Вывод приведенного выше кода выглядит следующим образом:
Пользовательская ошибка: [1024] Возникла пользовательская ошибка. Ошибка в строке 19 в C:webfoldertest.phpEnding Script.