Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Понятие исключительной ситуации



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

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

Все такие классы являются наследниками класса Exception (англ. Exception — исключение), что позволяет им быть «узнаваемыми» для Delphi. Механизм исключений состоит в досрочном прерывании подпрограммы или метода объекта, в которых произошла ошибка, и поиск обработчика исключения в этой подпрограмме (реализация обработчиков описана ниже).

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

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

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





Дата публикования: 2014-11-02; Прочитано: 1343 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...