Учебное пособие: Обработка ошибок в коде программ РНР

echo '<div style="border-style:inset; border-width:2">';

echo "Произошла ошибка с кодом <b>$errno</b>!<br>";

echo "Файл: <tt>$file</tt>, строка $line.<br>";

echo "Текст ошибки: <i>$msg</i>";

echo "</div>";

}

// Регистрируем ее для всех типов ошибок.

set_error_handler("myErrorHandler", E_ALL);

// Вызываем функцию для несуществующего файла, чтобы

// сгенерировать предупреждение, которое будет перехвачено.

@filemtime("spoon");

?>

Теперь все работает корректно: предупреждение не отображается в браузере, т. к. применен оператор @.


2.4 ГЕНЕРАЦИЯОШИБОК

Функция

void trigger_error(string $message [, int $type])

предназначена для искусственной генерации сообщения об ошибки с указанным типом. В РНР существует несколько констант, чьи имена начинаются с E_USER_, которые можно использовать наравне с E_ERROR, E_WARNING и т. д., но только для персональных нужд. Именно с функцией trigger_error() они чаще всего и применяются. Вот эти константы:

E_ERROR

E_WARNING

E_USER_NOTICE

Как их использовать — целиком зависит от программиста: никаких ограничений не налагается.

int error_log(string $msg [,int $type=O] [,string $dest] [, string $extra_headers])

Выше мы рассматривали директивы log_errors и error_log, которые заставляют РНР записывать диагностические сообщения в файл, а не только выводить их в браузер. Функция error_log по своему смыслу похожа на trigger_error(), однако, она заставляет интерпретатор записать некоторый текст ($msg) в файл журнала (при нулевом $type и по умолчанию), заданный в директиве error_log. Основные значения аргумента $type, которые может принимать функция, перечислены ниже:

● $type = = 0

Записывает сообщение в системный файл журнала или в файл, заданный в директиве error_log.

● $type = = 1

Отправляет сообщение по почте адресату, чей адрес указан в $dest. При этом $extra_headers используется в качестве дополнительных почтовых заголовков.

● $type == 3

Сообщение добавляется в конец файла с именем $dest.

2.5 СТЕК ВЫЗОВОВ ФУНКЦИЙ

В РНР версии 4.3.0 и старше существует возможность проследить всю цепочку вызовов функций, начиная от главной программы и заканчивая текущей выполняемой процедурой.

К-во Просмотров: 387
Бесплатно скачать Учебное пособие: Обработка ошибок в коде программ РНР