ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКИЙ ХИМИКО-ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ
им. Д.И. Менделеева
НОВОМОСКОВСКИЙ ИНСТИТУТ
ОБРАБОТКА ОШИБОК В КОДЕ ПРОГРАММ PHP
УЧЕБНОЕ ПОСОБИЕ
Новомосковск 2008
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
РОССИЙСКИЙ ХИМИКО-ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ
им. Д.И. Менделеева
НОВОМОСКОВСКИЙ ИНСТИТУТ
ОБРАБОТКА ОШИБОК В КОДЕ ПРОГРАММ PHP
УЧЕБНОЕ ПОСОБИЕ
Составитель: В. С. Прохоров
Содержание
ВВЕДЕНИЕ
1. КОНТРОЛЬ ОШИБОК
1.1 РОЛИ ОШИБОК
1.2 ВИДЫ ОШИБОК
1.2.1 НЕСЕРЬЕЗНЫЕ ОШИБКИ
1.2.2 СЕРЬЕЗНЫЕ ОШИБКИ
1.2.2.1 Прекращение выполнения программы
1.2.2.2Возврат недопустимого значения
1.2.2.3 Ненормальное состояние программы
1.2.2.4 Вызов функции-обработчика
1.3 ДИРЕКТИВЫ РНР КОНТРОЛЯ ОШИБОК
1.3.1 ДИРЕКТИВА error_reporting
1.3.2 ДИРЕКТИВА display_errors
1.3.3 ДИРЕКТИВА error_log
1.4 УСТАНОВКА РЕЖИМА ВЫВОДА ОШИБОК
1.5 ОПЕРАТОР ОТКЛЮЧЕНИЯ ОШИБОК
1.5.1 ПРИМЕР ИСПОЛЬЗОВАНИЯ ОПЕРАТОРА @
1.5.2 ПРЕДОСТЕРИЖЕНИЯ ПО ПРИМЕНЕНИЮ ОПЕРАТОРА ОТКЛЮЧЕНИЯ ОШИБОК @
2 ПЕРЕХВАТ ОШИБОК. МЕТОД РЕГИСТРАЦИИ ОБРАБОТЧИКА ОШИБОК
2.1 ФУНКЦИЯ set_error_handler
2.2 ФУНКЦИЯ restore_error_handler()
2.3 ПРОБЛЕМЫ С ОПЕРАТОРОМ @
2.4 ГЕНЕРАЦИЯ ОШИБОК
2.5 СТЕК ВЫЗОВОВ ФУНКЦИЙ
2.6 ПРИНУДИТЕЛЬНОЕ ЗАВЕРШЕНИЕ ПРОГРАММЫ
2.7 ФИНАЛИЗАТОРЫ
3. ПЕРЕХВАТ ОШИБОК. МЕТОД ИСКЛЮЧЕНИЙ
3.1 БАЗОВЫЙ СИНТАКСИС
3.2 ИНСТРУКЦИЯ throw
3.3 РАСКРУТКА СТЕКА
3.4 ИСКЛЮЧЕНИЯ И ДЕСТРУКТОРЫ
3.5 ИСКЛЮЧЕНИЯ И set_error_handler()
3.6 КЛАССИФИКАЦИЯ И НАСЛЕДОВАНИЕ
3.7 БАЗОВЫЙ КЛАСС Exception
3.8 ИСПОЛЬЗОВАНИЕ ИНТЕРФЕЙСОВ
3.9 БЛОКИ-ФИНАЛИЗАТОРЫ
3.9.1 Неподдерживаемая конструкция try...finally
3.9.2 "Выделение ресурса есть инициализация"
3.9.3 Перехват всех исключений
3.10 ТРАНСФОРМАЦИЯ ОШИБОК
3.10.1 Серьезность "несерьезных" ошибок
3.10.2 Преобразование ошибок в исключения
3.10.3 Код библиотеки PHP_Exceptionizer
3.10.4 Иерархия исключений
3.10.5 Фильтрация по типам ошибок
3.10.6 Перспективы
ЗАКЛЮЧЕНИЕ
ЛИТЕРАТУРА
ВВЕДЕНИЕ
Имеется мнение: "В любой программе есть хотя бы одна ошибка". На практике "хотя бы одна" означает "много" или даже "очень много".
Фаза "избавления" программы от ошибок (фаза отладки) является наиболее длительной и трудоемкой. Основное времяпровождение программиста (и не только) — это борьба с ошибками.
Одна из самых сильных черт РНР — возможность отображения сообщений об ошибках прямо в браузере. В зависимости от состояния интерпретатора сообщения будут выводиться в браузер или подавляться.
Для успешной борьбы с ошибками нужно научиться управлять настройками РНР, узнать о его тонких местах и о возможностях основных директив. Отдельное внимание следует уделять методикам отладки скриптов, а точнее — обработке сообщений об ошибках и предупреждений, которые могут возникнуть во время работы программы, а также выводу стека вызовов процедур (подобного тому, что существует в языках Java и Perl). Следует с осторожностью использовать оператор отключения предупреждений об ошибках.
Задача обработки ошибок в коде программы - одна из самых важных и популярных при программировании. Для ее успешного решения требуется уточнить понятие термина "ошибка" и определить его роль в программировании, а также изучить различные классификации ошибочных ситуаций. ............