- •Целый тип данных
- •Вещественный тип данных
- •Структура программы. Операторы языка
- •Ввод-вывод данных
- •Условный оператор и оператор выбора
- •Перечисляемый тип. Ограниченный тип. Множества
- •Иерархические записи
- •Операторы цикла Оператор цикла с параметром. Операторы цикла итерационного типа
- •Основные принципы ооп
- •Класс, объект
- •Конструкторы и деструкторы
- •Наследование
- •Полиморфизм
- •Визуальное программирование. Среда Делфи
- •Структура проекта. Модули
- •Компоненты. Его свойства и методы
- •Компиляция и сообщение компилятору
- •Линейный алгоритм в среде Делфи
- •20Иерархия классов в Делфи
- •Массивы
- •Создание и работа со списками
- •Управляющие компоненты
- •Переключатели зависимые и независимые
- •Контейнеры
- •Контейнеры. Формы модальные. Диалоговые окна
- •Классы exception
- •Создание главного меню
- •Типизированные файлы
- •Инструменты TabControl PageControl ToolBar CoolBar StatusBar
- •Динамическая структура
- •Форматы графических файлов
- •Основные типы бд. Создание бд
- •Компоненты для создания приложений бд
- •Создание вычисляемых полей и полей выбора
- •Навигационный способ доступа к данным
- •Способы фильтрации
- •Создание и обработка набора данных нескольких таблиц
- •Конструктор отчетов
Классы exception
Исключения (exceptions) – это способ передачи информации об ошибке времени выполнения или о других исключительных ситуациях из того места, которое первым ее обнаружило, в код, предусмотренный для обработки таких ситуаций. В конечном итоге ошибки обусловлены неполной проработкой всех вариантов работы программы. В последующих версиях программы обнаруженные ошибки можно попытаться устранить, однако многое можно предусмотреть и сразу.
Особенности:
Обработка исключительных ситуаций или исключений отличается от традиционной обработки тем, что она позволяет отделить код, который обнаруживает ошибку, от кода, который реагирует на нее, а также тем, что предоставляет автоматический и ненавязчивый канал связи между этими двумя частями кода. Код, обнаруживающий ошибку, возбуждает исключения, сигнализируя о ее появлении. Код, реагирующий на сигнал ошибки, называется обработчиком исключения. Когда исключение возбуждено, начинается поиск подходящего обработчика исключения. После нахождения управление передается ему, и программа никогда не возвращается к коду, который вызвал исключение. После выполнения кода обработчика исключений либо продолжается выполнение программы с оператора, следующего за обработчиком, либо продолжается поиск другого обработчика событий. Это может кардинально изменить ход выполнения программы.
Модель исключительных ситуаций в Object Pascal является невозобновляемой (non-resumable). При возникновении исключительной ситуации вы уже не сможете вернуться в точку, где она возникла, для продолжения выполнения программы (это позволяет сделать возобновляемая (resumable) модель). Невозобновляемые исключительные ситуации разрушают стек, поскольку они сканируют его в поисках обработчика; в возобновляемой модели необходимо сохранять стек, состояние регистров процессора в точке возникновения ошибки и выполнять поиск обработчика и его выполнение в отдельном стеке. Возобновляемую систему обработки исключительных ситуаций гораздо труднее создать и применять, нежели невозобновляемую.
В Delphi исключительные ситуации появляются в форме объектов. Они возбуждаются и существуют до тех пор, пока исключение не будет обработано.
Обработка исключительной ситуации всегда уничтожает экземпляр исключения. Однако программист должен не только уметь обрабатывать исключения, но и правильно возбуждать исключения при возникновении ошибок.
Классы исключений
Современное направление в ООП использует классы и их экземпляры для работы с исключениями. Базовым классом для всех классов исключений в Delphi является класс Exception, непосредственный потомок от класса ТОbject. Это тот тип, который служит обработчиком по умолчанию для всех исключительных ситуаций.
Все классы исключения принято именовать с буквы «Е». Списки стандартных исключений, объявленных в Delphi, можно найти в литературе.
Класс Exception определен в модуле SysUtils примерно следующим образом : Базовый класс включает поле FMessage строкового типа, объявленное в разделе Private. Оно доступно с помощью свойства Message, имеющего прямой доступ к полю при чтении и записи его значения. Именно эта строка выводится при обработке исключительной ситуации по умолчанию.
Constructor Create(Const Msg: String);
Constructor CreateFmt(Const Msg: String; Const Args: Array Of Const); (форматированное сообщение)
Для использования ресурсов:
Constructor CreateRes(Ident: Integer); Overload;
Constructor CreateRes(ResStringRec: PResStringRec); Overload;
Есть ещё конструкторы для использования справочной системы
Конструктор Create принимает один параметр Msg типа String. Эта строка должна быть информативной или осмысленной строкой, представляющей исключение, либо класс исключений. И ещё много конструкторов.
