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


♦ Установка уровня сообщений об ошибках

♦ Безопасное программирование для минимизации ошибок:

♦ Подавление сообщений об ошибках

♦ Восстановление после ошибок

♦ Специальная проверка ошибок

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

♦ Средства отладки и тестирования:

♦ Средства отладки HTTP типа клиентов telnet и «шпионских» серверов (snoop servers)

♦ Отладка с помощью трассировки посредством phpCodesite

♦ Удаленные отладчики типа BODY и Zend IDE

♦ Тестирование сценариев с помощью phpUnit

Обзор ошибок программирования

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

♦ Синтаксические ошибки

♦ Семантические ошибки

♦ Логические ошибки

♦ Ошибки окружения

Рассмотрим эти ошибки более пристально.

Синтаксические ошибки

Синтаксические ошибки встречаются чаще всего и обнаруживаются проще всего. Эти ошибки возникают вследствие некорректного применения конст­рукций языка. Возникновение синтаксических ошибок имеет значительные различия в РНРЗ и РНР4. Дело в том, что в РНРЗ каждая строка интерпре­тировалась, когда до нее доходило выполнение, тогда как в РНР4 перед ис­полнением компилируются все операторы.

В РНРЗ успешное выполнение программы не гарантировало отсеивание всех синтаксических ошибок. Чаще всего, когда сценарий выбирает особую ветвь выполнения, вскрываются не обнаруженные до того синтаксические ошиб­ки. Проиллюстрируем это на следующем сценарии РНРЗ:

<?php

//Simple_Leap. php

високосность

echo("February days");

s

echo( "February . 1

}

?>

Этот сценарий прекрасно выполняется, когда в содержится значение не високосного года, что происходит в трех случаях из четырех. Однако в блоке кода, обрабатывающем високосный год, есть синтаксическая ошибка - стро­ка аргумента оператора echo начинается двойной кавычкой, но оканчивает­ся одинарной. Такая ошибка очевидна, легко прослеживается и ее легко ис­править. Однако при отсутствии хорошей стратегии тестирования она мо­жет вызвать неожиданный отказ программы.




Если вас сайт связан с продажами какого-либо товара, вам стоит вести статистику сколько из посетителей вашего сайта сделали на сайте заказ. Наша команда предлагает повышение конверсии, то есть множество полезных действия для сайта.