Обработка ошибок PHP

| | | | | | | | | | | | | | | | | | |
Методы обработки ошибок PHP:
  • Использование метода die()
  • Пользовательская обработка ошибок
Основная обработка ошибок: использование функция die() Функцияdie() печатает сообщение и завершает текущий скрипт.Синтаксис:
die ($message)
Пример:< /b><код><код>
// PHP-код, показывающий обработку ошибок по умолчанию$file = fopen ( "engineer.txt" , "w" ); ?> Примечание.Выполните приведенный выше код, и файл engineer.txt отсутствует. , а затем отобразится ошибка времени выполнения.
Ошибка выполнения:
Предупреждение PHP: fopen (engineer.txt): не удалось открыть поток: Отказано в доступе в /home/dac923dff0a2558b37ba742613273073.php в строке 2
Чтобы предотвратить эту ошибку, используйте функцию die(). Функция die() реализована ниже:Пример:
// PHP-код для проверки ошибок
// если файла нет
// затем выходим из скриптаif (! file_exists ( "engineer.txt" )) { die ( "Файл отсутствует" ); }
// если файл присутствует
// затем продолжаемelse { $file = fopen ( " engineering.txt " , " w " ); }
?>
Примечание.Если файл engineer .txt отсутствует, будет отображаться вывод.
Выход
Файл отсутствует
Пользовательские обработчики ошибок:Создание пользовательского обработчик ошибок в PHP очень прост. Создайте функцию, которую можно вызвать при возникновении ошибки в PHP.Синтаксис:
error_function ($error_level, $error_message, $error_file, $error_line, $error_context)
Параметры:эта функция принимает пять параметров, как указано выше и описано ниже:
  • $error_level: это обязательный параметр, который должен быть целым числом. Существуют предопределенные уровни ошибок.
  • $error_message:это обязательный параметр, и это сообщение, которое пользователь хочет напечатать.
  • $ error_file: необязательный параметр, используемый для указания файла, в котором произошла ошибка.
  • $error_line:это необязательный параметр, используемый для указания номера строки, в которой произошла ошибка. произошел.
  • $error_context:это необязательный параметр, который используется для указания массива, содержащего каждую переменную и ее значение при возникновении ошибки.
error_level:это возможные уровни ошибок, которые перечислены ниже:
  • 1: .E_ERROR: фатальная ошибка во время выполнения была остановлена
  • 2: E_WARNING: не- фатальная ошибка выполнения, выполнение скрипта остановлено
  • 4: E_PARSE: ошибка времени компиляции, сгенерированная синтаксическим анализатором
  • 8: E_NOT ICE: скрипт обнаружил что-то, что могло быть ошибкой
  • 16: E_CORE_ERROR: неустранимые ошибки, возникшие при начальном запуске скрипта
  • 32: E_CORE_WARNING: некритические ошибки, возникшие при начальном запуске скрипта
  • 8191: E_ALL: все ошибки и предупреждения.
Функция set_error_handler():После создания функции myerror() вам необходимо установить пользовательский обработчик ошибок, поскольку PHP обычно обрабатывает ее, но если пользователь выполняет настраиваемую обработку ошибок, тогда пользователь должен установить ее вместо аргумента и передать функцию myerror в виде строки.Пример:
// Создаем мою функцию ошибки, которая печатает сообщение
// пользовательскаяфункция моя ошибка ( $error_no , $error_msg ) { echo "Ошибка: [$error_no] $error_msg" ; echo "Сейчас скрипт завершится" ; // Если возникает ошибка, скрипт должен быть остановлен умереть (); }
// Установка set_error_handlerset_error_handler ( "myerror" ); $a = 10; $b = 0;
// Это будет генерировать ошибкуecho ( $a / $b ) ;; ?>
Вывод:
Ошибка: [2] Раздел b y ноль Теперь сценарий завершится
Вывод:всегда пытайтесь обрабатывать ошибки с помощью пользовательской обработки ошибок, потому что она будет отображать более конкретное сообщение в зависимости от пользователя, что может быть полезно для пользователя. Если ошибка не обрабатывается с помощью пользовательской обработки ошибок, возникает ошибка, тогда сценарий будет остановлен по умолчанию, но если он обрабатывает ошибку с помощью пользовательской обработки ошибок, он может продолжить выполнение сценария после отображения сообщения об ошибке.