Аргерих Л. О языке РНР. Часть 1. Страница 129


//Работа с соединениями, во время которой может произойти ошибка

//Завершение работы ввиду невозможности продолжить выполнение из-за ошибки

$myConnxnMgr->cleanup(); ?> ,

В приведенном коде класс Connection_Manager следит за всеми открытыми со­единениями. Благодаря этому при возникновении ошибки, которая поме­шает дальнейшему выполнению кода, приложение может мягко завершить­ся, выполнив ряд вспомогательных задач, включая закрытие всех откры­тых соединений.

Переопределение проверки ошибок

В некоторых случаях, например при выполнении директивы кото­

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

<?php

//myFile.inc - включаемый файл error_reporting(0);

define("MY_IMCLUDE_FILE", true);

SmyName = "Marie";

?>

В файле, который надо включить, определяем фиктивную константу MY_IN- CLUDE_FILE:

<?php

//Target, php - файл, из которого вызывается includeQ

@include("myFile.inc");

if (defined("MY_INCLUDE_FILE")) {.

echo($myName); } else {

error_log("Heудалось включить myFile.inc");

}

7>

В целевом сценарии надо проверить, успешно ли выполнилась

функция include(). С этой целью мы определяем фиктивную константу MY_IN- CLUDE_FILE. В target. php, откуда вызывается include(), проверяем, определена ли эта фиктивная константа. Если она определена, значит, файл включен.

Регистрация ошибок

Как мы видели ранее, хорошая стратегия обработки ошибок требует регист­рировать их, не вмешиваясь в интерфейс пользователя, для последующего анализа программистом или администратором. РНР предоставляет функ­цию позволяющую регистрировать ошибки и указывать место, куда должны направляться сообщения об ошибках:

int error_log(string message, int message_type

[, string destination] [, string extra_headers])

Здесь message - это сообщение об ошибках, которое должно быть зарегистри­ровано, a message_type - тип получателя сообщений об ошибках. Он может быть задан как:

♦ 0 - системный журнал регистрации ошибок; обычно это журнал ошибок веб-сервера. В этом случае третий и четвертый аргументы опускаются. Имя файла системного журнала ошибок можно задать как значение ди­рективы error_log в файле php. ini. Если error_log имеет значение syslog, то ошибки регистрируются в журналах веб-сервера.

♦ 1 - адрес электронной почты. В этом случае третий аргумент задает фак­тический адрес e-mail, а четвертый - дополнительные заголовки, кото­рые требуется передать в составе сообщения.




Вы уже определились, что хотите отдохнуть в Египте, то вам теперь нужно определится с компанией. Так, туры в египет по самым лучшим ценам предлагает туристическая компания tourskidki.ru.