русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Классы exception


Дата добавления: 2014-12-02; просмотров: 749; Нарушение авторских прав


Исключения (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. Эта строка должна быть информативной или осмысленной строкой, представляющей исключение, либо класс исключений. И ещё много конструкторов.



<== предыдущая лекция | следующая лекция ==>
Контейнеры. Формы модальные. Диалоговые окна | Создание главного меню


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.