Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы и ответы к письм. мод. по Делфи.doc
Скачиваний:
4
Добавлен:
18.07.2019
Размер:
271.36 Кб
Скачать

Опишите механизм сообщений в ос Windows

Ответ: Windows следит за изменениями в состоянии системы (нажатие клавиш, перемещение мыши и нажатие ее кнопок, и т.д.) и генерирует

специальные структуры данных, которые содержат следующую информацию:

1. Ссылка на окно, которое находилось в фокусе, когда произошло событие.

2. Идентификатор события.

3. Дополнительная информация для данного события.

Далее эти пакеты сохраняются в очереди сообщений Windows, а ядро опять

переходит в режим слежения за системой. С другой стороны, очередь непрерывно разбирается, анализируется ссылка на окно, которому предназначено событие, и вызывается его оконная функция — специальная подпрограмма, описанная по определенным правилам и зарегистрированная в операционной системе как объект назначения для сообщений. Вызванная оконная функция должна проанализировать событие по его идентификатору, используя дополнительные параметры, выполнить действия, обусловленные логикой программы, и вернуть в качестве результата функции код завершения обработки.

Дайте определение исключительной ситуации

Ответ: Исключительная ситуация (исключение) — это некоторая ситуация времени выполнения программы, которая требует специальной обработки. К таким событиям относятся ошибки времени выполнения программы, например, деление на ноль или попытка чтения информации из несуществующего файла.

Расскажите об объектах-исключениях в Delphi

Ответ: При возникновении исключительной ситуации Delphi создает экзем-

пляр некоторого класса, в зависимости от характера произошедшей ошибки

и вызывает команду Raise, передавая ей ссылку на этот объект. Все такие классы являются наследниками класса Exception, что позволяет им быть «узнаваемыми» для Delphi.

После вызова команды Raise по очереди прерываются подпрограммы, вызвавшие ту подпрограмму, в которой произошла исключительная ситуация. Данный процесс останавливается, когда в одной из подпрограмм стека обнаруживается обработчик соответствующего класса исключительных

ситуаций.

Любая подпрограмма может сама сгенерировать исключительную ситуацию с помощью оператора Raise.

Расскажите о методах обработки исключительных ситуаций

Ответ: Когда некоторый фрагмент программного кода необходимо защитить от досрочного завершения по ошибке, его следует заключить в блок обработки исключения. Таких блоков в Delphi предусмотрено два:

Блок обработки исключений Try.. Except пытается выполнить заданный фрагмент программы, а, в случае появления исключения, передает управление специальному обработчику, расположенному в секции Except. Блок обработки исключений Try. .Except может быть использован в ситуациях, когда известно, как именно нужно реагировать на произошедшую ошибку, даже если программа и не пытается установить ее тип. Когда реакция программы на ошибку не так важна, как корректное завершение фрагмента программы, вызвавшего эту ошибку, может быть использован блок обработки исключений Try.. Finally. При его использовании вне зависимости от корректности работы основного фрагмента программы, управление всегда передается в секцию Finally, где обычно производятся действия по возврату системе ресурсов, полученных перед входом в блок обработки исключения.