Обработка ошибок - это процесс обнаружения ошибок, вызванных вашей программой, а затем принятия соответствующих мер. Если вы будете правильно обрабатывать ошибки, это может привести ко многим непредвиденным последствиям.
Содержание:
Это очень просто в PHP для обработки ошибок.
Использование функции die()
При написании вашей программы PHP вы должны проверить все возможные условия ошибки перед тем, как идти вперед, и при необходимости предпринять соответствующие действия.
Попробуйте привести пример без файла / tmp / test.xt и с этим файлом.
Таким образом, вы можете написать эффективный код. Используя вышеприведенную технику, вы можете остановить свою программу всякий раз, когда она выдает ошибки и отображает более содержательные и удобные для пользователя сообщения.
Определение пользовательской функции обработки ошибок
Вы можете написать свою собственную функцию для обработки любой ошибки. PHP предоставляет вам структуру для определения функции обработки ошибок.
Эта функция должна иметь возможность обрабатывать минимум два параметра (уровень ошибки и сообщение об ошибке), но может принимать до пяти параметров (опционально: файл, номер строки и контекст ошибки) -
Синтаксис error_function(error_level,error_message, error_file,error_line,error_context);
# | Параметр | Описание |
---|---|---|
1 | error_level | Обязательный параметр - задает уровень отчета об ошибке для пользовательской ошибки. Значение должно быть числом. |
2 | error_message | Обязательный параметр - указывает сообщение об ошибке для пользовательской ошибки |
3 | error_file | Необязательный. Указывает имя файла, в котором произошла ошибка. |
4 | error_line | Необязательный. Указывает номер строки, в которой произошла ошибка. |
5 | error_context | Необязательный. Указывает массив, содержащий каждую переменную, и их значения, используемые при возникновении ошибки. |
Возможные уровни ошибок
Эти уровни отчетов об ошибках представляют собой различные типы ошибок, к которым может использоваться пользовательский обработчик ошибок. Эти значения используются в комбинации с использованием | оператор
# | Константа | Описание | Значение |
---|---|---|---|
1 | .E_ERROR | Неустранимая ошибки во время выполнения. Выполнение сценария останавливается | 1 |
2 | E_WARNING | Нефатальные ошибки во время выполнения. Выполнение скрипта не останавливается | 2 |
3 | E_PARSE | Ошибки анализа времени компиляции. Ошибки анализа должны генерироваться только парсером. | 4 |
4 | E_NOTICE | Уведомления о времени выполнения. Скрипт нашел что-то, что может быть ошибкой, но может также произойти при обычном сценарии | 8 |
5 | E_CORE_ERROR | Неустранимая ошибки, возникающие во время первоначального запуска PHP. | 16 |
6 | E_CORE_WARNING | Нефатальные ошибки во время выполнения. Это происходит во время первоначального запуска PHP. | 32 |
7 | E_USER_ERROR | Неустранимая пользовательская ошибка. Это похоже на набор E_ERROR программиста, использующий функцию PHP trigger_error() | 256 |
8 | E_USER_WARNING | Нефатальное пользовательское предупреждение. Это похоже на E_WARNING, установленный программистом с использованием функции PHP trigger_error() | 512 |
9 | E_USER_NOTICE | Пользовательское уведомление. Это похоже на набор E_NOTICE, заданный программистом с использованием функции PHP trigger_error() | 1024 |
10 | E_STRICT | Уведомления о времени выполнения. Включите, чтобы PHP предлагал изменения в вашем коде, что обеспечит лучшую совместимость и передовую совместимость вашего кода. | 2048 |
11 | E_RECOVERABLE_ERROR | Ловкая ошибка. Это похоже на E_ERROR, но может быть захвачен определяемым пользователем дескриптором (см. Также set_error_handler()) | 4096 |
12 | E_ALL | Все ошибки и предупреждения, кроме уровня E_STRICT(E_STRICT будет частью E_ALL с PHP 6.0) | 8191 |
Все указанные выше уровни ошибок можно задать, используя встроенную библиотечную функцию PHP, где уровень ошибки будет любым значением, определенным в таблице выше.
int error_reporting ([ int $ level])
Ниже приведен способ создания одной функции обработки ошибок -
После того, как вы определили свой собственный обработчик ошибок, вам нужно установить его с помощью встроенной библиотеки set_error_handler. Теперь давайте рассмотрим пример, вызвав функцию, которая не существует.
Обработка исключений
PHP 5 имеет модель исключения, аналогичную модели других языков программирования. Исключения важны и обеспечивают лучший контроль над обработкой ошибок. Позволяет объяснить там новое ключевое словосвязанное с исключениями.
- Try - функция, использующая исключение, должна находиться в блоке «try». Если исключение не запускается, код будет продолжен как обычно. Однако, если исключение инициируется, исключение «бросается».
- Throw - это то , как вы вызываете исключение. Каждый «бросок» должен иметь хотя бы один «улов».
- Catch. Блок «catch» извлекает исключение и создает объект, содержащий информацию об исключении.
- Когда генерируется исключение, код, следующий за оператором, не будет выполнен, а PHP попытается найти первый соответствующий блок catch. Если исключение не поймано, PHP Fatal Error будет выпущена с помощью «Uncaught Exception ...»
- Исключение может быть выброшено, и поймал ( « пойманный ») в PHP. Код может быть окружен в блоке try.
- Каждая попытка должна иметь по крайней мере один соответствующий блок catch. Для блокировки различных классов исключений можно использовать несколько блоков catch.
- Исключения могут быть сброшены (или повторно выбраны) в блоке catch.
Ниже приведен фрагмент кода, скопируйте и вставьте этот код в файл и проверьте результат.
В приведенном выше примере функция $e->getMessage
используется для получения сообщения об ошибке. Существуют следующие функции, которые могут использоваться из класса Exception.
- GetMessage() - сообщение об исключении
- GetCode() - код исключения
- GetFile() - исходное имя файла
- GetLine() - исходная строка
- GetTrace() - n массив backtrace()
- GetTraceAsString() - сформированная строка трассировки
Создание настраиваемого обработчика исключений
Вы можете определить собственный собственный обработчик исключений. Используйте следующую функцию для установки пользовательской функции обработчика исключений.
string set_exception_handler(callback $exception_handler)
Здесь exception_handler - это имя вызываемой функции, когда происходит неперехваченное исключение. Эта функция должна быть определена перед вызовом set_exception_handler().
примерС уважением, авторы сайта Компьютерапия
Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!
Предыдущие статьи
- Регулярные выражения PHP -Кванторы, мета-символы и модификаторы - 12/04/2018 19:20
- Сеансы PHP - Запуск, уничтожение, сессии без файлов cookie - 12/04/2018 19:20
- PHP-файлы cookie - Настройка, доступ и удаление cookie - 12/04/2018 19:19
- Файлы PHP и ввод-вывод - открытие, чтение, запись и закрытие файла - 12/04/2018 19:18
- Методы PHP GET и POST, переменная $_REQUEST - 12/04/2018 19:17
- Загрузка файлов PHP - Создание формы и сценария загрузки - 12/04/2018 19:16
- Объектно-ориентированное программирование в PHP - 12/04/2018 19:15
- Включение файла в PHP - Функция include и require - 12/04/2018 19:14
- Предопределенные переменные PHP - Суперглобальные массивы и переменные сервера - 12/04/2018 19:13
- Функции с параметрами, динамические вызовы, создание функции в PHP - 12/04/2018 19:12
- Типы операторов PHP - категории, присваивания, логические операторы - 12/04/2018 19:11
- Типы циклов PHP for, foreach, continue, break, do-while - 12/04/2018 19:10
- Принятие решений PHP - ElseIf Switch - 12/04/2018 19:09
- Типы констант PHP - Различия между константами и переменными - 12/04/2018 19:08
- Массивы PHP: Многомерные, ассоциативные и числовые массивы - 12/04/2018 19:07
- Типы переменных, область и имена переменных в PHP - 12/04/2018 19:06
- Строки в PHP, strpos, strlen, конкатенация строк - 12/04/2018 19:05
- Дата и время, получение, преобразование времени в PHP - 12/04/2018 19:03
- Обзор синтаксиса, канонические теги, комментирование PHP-кода - 12/04/2018 19:02
- Введение в PHP. Общее использование, характеристики PHP - 12/04/2018 19:01