Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП / ООП_Лекции.doc
Скачиваний:
55
Добавлен:
08.06.2015
Размер:
1.03 Mб
Скачать

Последовательность обработки исключений

Блоки try...except могут быть вложенными явным или неяв­ным образом. Примером неявной вложенности является блок try...except, в котором среди операторов раздела try имеются вы­зовы функций или процедур, которые имеют свои собственные блоки try...except. Рассмотрим последовательность обработки исключений в этих случаях. При генерации исключения сначала ищется соответствующий ему обработчик on в том блоке try...ex­cept, в котором создалась исключительная ситуация. Если соот­ветствующий обработчик не найден, поиск ведется в обрамляю­щем блоке try...except (при наличии явным образом вложенных блоков) и т. д. Если в данной функции или процедуре обработчик не найден или вообще в ней отсутствуют блоки try...except, то по иск переходит на следующий уровень — в блок, из которого была вызвана данная функция или процедура. Этот поиск продолжа­ется по всем уровням. И только если он закончился безрезультат­но, выполняется стандартная обработка исключения, заключаю­щаяся, как уже было сказано, в выдаче пользователю сообщения о типе исключения.

Как только оператор on, соответствующий данному исключе­нию, найден и выполнен, объект исключения разрушается и управление передается оператору, следующему за тем блоком try...except, в котором был осуществлен перехват.

Возможен также вариант, когда в самом обработчике исклю­чения в процессе обработки возникла исключительная ситуация. В этом случае обработка прерывается, прежнее исключение раз­рушается и генерируется новое исключение. Его обработчик ищется в блоке try...except, внешнем по отношению к тому, в ко­тором возникло новое исключение.

5. Классы и объекты

Вопросы:

  • понятие класса и объекта;

  • составляющие класса;

  • операции с классами;

  • ссылки на классы;

  • иерархия классов (Лаб.раб.№3);

  • создание объектов во время выполнения;

  • поиск компонентов (Лаб.раб.№4).

Классы и объекты

Классами в Object Pascal называются специальные типы, которые со­держат поля, методы и свойства. Как и любой другой тип, класс служит лишь образцом для создания конкретных экземпляров реализации, ко­торые называются объектами. Важным отличием классов от других типов является то, что объекты класса всегда распределяются в куче, поэтому объект-переменная фак­тически представляет собой лишь указатель на динамическую область памяти. Однако в отличие от других указателей при ссылке на содер­жимое объекта запрещается использовать символ «^» за именем объекта:

type

TMyClass = class(TObject)

Field: Integer;

. . . . . .

end;

var

MyClass: TMyClass;

Begin

MyClass:=TMyClass.Create;

MyClass^.Field := 0; // Ошибка! Следует писать так:

MyClass.Field := 0;

end;

Классы - это особое «изобретение» программистов для упрощения разработки сложных программ и улучшения их качества. В основе клас­сов лежат три фундаментальных принципа, которые называются инкап­суляция, наследование и полиморфизм.

Инкапсуляция

представляет собой единство трех сущностей - полей, методов и свойств. Объединение этих сущностей в единое целое и называется инкапсуляцией. Инкапсуляция позволяет во многом изолировать класс от остальных частей программы, сделать его «самодостаточным» для решения конкретной задачи. В результате класс всегда несет в себе не­которую функциональность. Например, класс TForm содержит (инкапсулирует в себе) все необходимое для создания Windows-окна, класс ТМето представляет собой полнофункциональный текстовый ре­дактор, класс TTimer обеспечивает работу программы с таймером и т.д.

Инкапсуляция представляет собой мощное средство обмена готовы­ми к работе программными заготовками. Библиотека классов Delphi -это фактически набор «кирпичиков», созданных программистами Borland для построения ваших программ.

Соседние файлы в папке ООП