Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2014-01 КНЯЗЕВА_Эл_бизнес / Электронный бизнес_Князева.doc
Скачиваний:
50
Добавлен:
20.02.2016
Размер:
1.24 Mб
Скачать
    1. Обработка ошибок

В РНР существует несколько подходов к управлению выводом сообщений:

  • управление выводом стандартных сообщений при использовании файла php.ini;

  • управление выводом стандартных сообщений при использовании встроенных функций;

  • перехват и обработка ошибок пользовательскими функциями.

Основные типы ошибок представлены в таблице 3.3.

Таблица 3.3 – Типы ошибок в PHP

Знач

Константа

Описание

1

E_ERROR

К этой категории относятся фатальные ошибки, возникающие во время выполнения программы (Runtime errors), напр., нехватка памяти. Приводят к полной остановке выполнения скрипта

2

E_WARNING

Предупреждения обычно не прерывают выполнения программы, но сигнализируют об ошибках в программном коде. Напр., вызов функции с неправильным набором параметров

4

E_PARSE

Генерируются во время компиляции и обычно связаны с синтаксическими ошибками в программе

8

E_NOTICE

Примечания времени выполнения. обычно указывают на места в программе, которые могут содержать как потенциальную ошибку, так и быть вполне рабочими.

2048

E_STRICT

Рекомендации, для улучшения качества кода.

2047

E_ALL

Все типы ошибок, кроме E_STRICT

Настройки в конфигурационном файле php.ini

В этом файле обычно устанавливаются настройки, применяемые по умолчанию ко всем Web-приложениям.

Рассмотрим основные директивы, установленные по умолчанию:

    • еrror_reporting =E_ALL & ~E_NOTICE - вывод всех ошибок кроме замечаний (& и ~) логические операторы И и НЕ. Для вывода всех ошибок E_ALL | E_STRICT;

    • display_errors - указывает, будут ли ошибки выводиться на экран; 1 - включена; 0 — выключена;

    • log_errors имеет значение on или off , включено означает, что запись ошибок будет производиться в файл, указанный в директиве error_Iog.

Язык PHP предоставляет различные средства для обработки ошибочных ситуаций.

  1. Символ @ для подавления стандартных сообщений об ошибках. Его можно использовать с любой функцией, которая может выводить сообщение, чтобы стандартное сообщение заменить своим.

  2. Функцию error_reporting(), которая включает и выключает диагностирование ошибок.

Аргумент функции можно передать двумя способами:

  • в виде чисел, соответствующих уровню ошибки; напр., error_reporting (1+2) отключает диагностику 1 и 2 уровня, error_reporting (0)-отменяет все сообщения об ошибках;

  • в виде поясняющего текста. error_eeporting(E_ALL & ~E_NOTICE); все ключевые фразы можно посмотреть в текстовом файле Z:\usr\local\php\php.ini.

  1. Функции mysql_error() и mysql_errno() диагностируют ошибки, которые возвращаются сервером MySQL. Функция mysql_error() возвращает сообщение об ошибке в виде строки (пустая строка означает отсутствие ошибки). Функция mysql_errno() возвращает номер ошибки (0 – если ошибки нет). Эти функции начинают работать только после успешного соединения с сервером. На стадии установления соединения можно получить сообщение об ошибке, сославшись на специальную переменную $php_errormsg. При этом в файле инициализации должна быть раскомментирована строка track_errors=On;

Пример (соединение с сервером и БД):

<?php $dbL=@mysql_pconnect("http://greenpiece.ru","root","" ) or die ("Невозможно установить соединение: ".$php_errormsg);?>

if(!mysql_select_db(" ",$dbL))

{

print ("Не выбрана база данных!<br>\n");

print ("Код ошибки: ".mysql_errno() ."<br>\n " . mysql_error(). "<br>\n");

exit();}