- Использование метода 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_handler
set_error_handler (
"myerror"
);
$a
= 10;
$b
= 0;
// Это будет генерировать ошибку
echo
(
$a
/
$b
) ;;
?>
Вывод:Ошибка: [2] Раздел b y ноль Теперь сценарий завершится
Вывод:всегда пытайтесь обрабатывать ошибки с помощью пользовательской обработки ошибок, потому что она будет отображать более конкретное сообщение в зависимости от пользователя, что может быть полезно для пользователя. Если ошибка не обрабатывается с помощью пользовательской обработки ошибок, возникает ошибка, тогда сценарий будет остановлен по умолчанию, но если он обрабатывает ошибку с помощью пользовательской обработки ошибок, он может продолжить выполнение сценария после отображения сообщения об ошибке.