Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5 семестр / Инструм.средства / ЛЕКЦИИ / Лекция №4 Общие понятия и описание PHP.doc
Скачиваний:
54
Добавлен:
17.02.2016
Размер:
186.88 Кб
Скачать

9. Обработка ошибок

Интерпретатор PHP позволяет программисту определить, какие сообщения об ошибках нужно выводить, а какие — нет. Пока вы отлаживаете программу, я рекомендую выводить все сообщения об ошибках и все предупреждения, а потом, когда программа нормально работает, выводить только сообщения об ошибках.

Параметр error_reporting в файле конфигурации PHP — /etc/php, ini — позволяет определить степень обработки и протоколирования ошибок. Возможные значения:

E__ALL — все ошибки и предупреждения;

E_ERROR — фатальные ошибки во время выполнения программы (например, невозможно открыть файл);

E_WARNING — предупрежения времени выполнения (нефатальные ошибки);

E_PARSE — синтаксические ошибки;

E_NOTICE — замечания времени выполнения (например, сообщение о том, что переменная неинициализирована).

Кроме вышеперечисленных возможны и другие значения, но они не столь важны. Я рекомендую включить оповещения обо всех ошибках и предупреждениях: error_reporting = E ALL

Когда программа отлажена, можно отключить замечания времени выполнения. Для отключения какого-нибудь вида ошибок используется тильда: error_reporting = E_ALL & ~E_NOTICE

Если вы не можете отредактировать файл php. mi (например, у вас нет на это прав), можно использовать вызов функции error_reporting(), например, error_reporting(E_ALL) ;

Следует учитывать, что действие директивы error_reporting в файле конфигурации распространяется на все ваши сценарии, а вызов функции error_reporting() — только на текущий сценарий.

Существует еще один способ избежать вывода сообщения об ошибке — это использование оператора @. Если этот оператор поставить перед каким-либо выражением, то все ошибки, которые в этом выражении возникнут, будут проигнорированы.

Например, если вы не хотите, чтобы пользователь видел сообщение об ошибке какой-нибудь стандартной функции, нужно указать оператор @ перед именем функции, например: @mysql_query("create table tbl (no inn, info text)");