Учебник по основам PHP. PHPBeginner


         

Функция возвращает имя функции, ранее


errorj-eporting (2039).
// в РНР 4 эквивалент E_ALL " EJIOTICE
error_reporting (E_ALL * E_NOTICE);
// установка по умолчанию
error_reporting(0):
// отключить сообщения об ошибках
errorj-eporting (EJRROR E_WARNING
| E_PARSE):
/* Общие ошибки выполнения */
error j-eporting (EJRROR | E_WARNING
| E_PARSE | EJIOTICE);
/* также сообщать о неизвестных переменных */
error_reporting (E_ALL).
/* сообщать все ошибки */

set_error_handler

Установка пользовательского обработчика ошибок

string set_error_hand1er (string error_handler)

Функция возвращает имя функции, ранее определенной в качестве обработчика ошибок (или FALSE при ошибке), и устанавливает, в качестве нового обработчика, функцию с указанным в аргументе еггог_ handler именем.

Обычно пользовательский обработчик ошибок работает в паре с функцией tngger_error(), генерирующей ошибку; это может быть использовано (подобно аналогичной конструкции работы с исключениями в С) для освобождения выделенных ресурсов (например, удаления созданных файлов), если сценарий не может нормально завершиться.

Функция, устанавливаемая в качестве обработчика ошибок, должна принимать пять параметров (три последних являются дополнительными и могут не обрабатываться):

  • код ошибки;


  • строку, описывающую ошибку;


  • имя сценария, в котором произошла ошибка;


  • номер строки сценария, содержащей ошибку;


  • контекст (массив, содержащий значения переменных, в момент-возникновения ошибки).


  • <?php // определить константы
    пользовательских ошибок define
    (FATAL.E_USER_ERROR);
    define (ERROR.E_USER_WARNING).
    define (WARNING.E_USER_NOTICE).
    // установить, какие ошибки должны
    обрабатываться в сценарии
    errorj-eporting (FATAL | ERROR | WARNING);
    // пользовательский обработчик ошибок
    function myErrorHandler ($errno. Serrstr.
    ierrfile. Serrlme) { switch (Serrno)
    { case FATAL:
    echo "<b>Критическая ошибка</b>
    [Serrno] $errstr<br>\n";
    echo " в строке: Serrline. файла:
    ".Serrhle:
    echo ", PHP ".PHP_VERSION."
    (".PHP_OS.")<br>\n":
    echo "Aborting...<br>\n":
    exit -1:
    break case ERROR:
    echo "<b>Ошибка</b> [Serrno] $errstr
    <br>\n":
    break: case WARNING:
    echo "<b>Предупреждение</b>
    [Serrno] Serrstr<br>\n";
    break:
    default:
    echo "Неизвестный тип ошибки:
    [Serrno] $errstr<br>\n";
    break; } } // функция для проверки
    обработки ошибок (масштабирование
    массива) function scale_by_log
    (Svect. Sscale) { if ( hs_numenc
    (Sscale) || Sscale <= 0 )
    trigger_error("вычислить log(x).
    для x <= 0 нельзя. ". "(x = Sscale)".
    FATAL), if (hs_array(Svect))
    { trigger error("Требуется массив
    ". ERROR); return null: }
    for ($1=0; $i<count(Svect): Si++)
    { if (!is_numenc($vect[$i]))
    thgger_error( "Элемент (SI)
    не число, и его значением".
    " считается О". WARNING);
    $temp[Si] = log(Sscale) *
    $vect[Si]: } return Stemp: }
    // установить пользовательский
    обработчик ошибок
    Sold_error_handler
    = set_error_handler
    ("myErrorHandler");
    Sa = array(2.3."foo".5.5.43.3.21 11);
    pnnt_r(Sa).
    Sb = scale_by_log(Sa. M_PI);
    // здесь выдается предупреждение
    echo "Массив, масштабированный
    на логарифм(Пи): "; pnnt_r($b):
    $с = scale_by_log("not array".2 3);
    // здесь ошибка var_dump($c).
    $d = scale_by_log($a. -25)
    .// здесь критическая ошибка
    echo "Продолжение сценария .": ?>


    Содержание  Назад  Вперед





    Forekc.ru
    Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий