Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Informatika-otvety (2).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
494 Кб
Скачать
☆
  1. Классы 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. Эта строка должна быть информативной или осмысленной строкой, представляющей исключение, либо класс исключений. И ещё много конструкторов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]