Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Обработка исключений




 

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

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

 

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

2. Когда исключительная ситуация возникает в последовательности вложенных функций или вызывающих процедур, не существует простого способа передать ее от одной функции к другой, поскольку управление передается через последовательность процедур. Рассмотрите ситуацию, показанную на рис. 18.2, где функция А вызывает функцию В, которая, в свою очередь, вызывает функцию С. Если исключительная ситуация произойдет во время выполнения функции С, то это может сделать невозможным выполнение функции В. В этом случае необходим немедленный возврат от функции В к функции А с сообщением, что работа функции В завершилась неверно и что произошла исключительная ситуация.

 

Рис. 18.2. Исключительная ситуация в последовательности вложенных функций

 

Если язык программирования имеет конструкции, поддерживающие обработку исключительных ситуаций, то дополнительные условные операторы для проверки исключительных ситуаций не понадобятся. Для этого язык программирования должен поддерживать специальный встроенный тип данных (часто называемый Exception (Исключение)) и должны быть объявлены различные исключительные ситуации этого типа. Когда происходит исключительная ситуация, генерируется сигнал об исключительной ситуации и управление передается обработчику исключений. Подпрограмма обработчика определяет исключение и применяет соответствующие действия для его обработки.

В языках Ada, C++ и Java предусмотрены специальные средства обработки исключительных ситуаций. В языке Java новые типы исключительных ситуаций можно объявить путем расширения встроенного класса Exception. Для сообщения об исключительной ситуации в языке Java используется оператор throw (перемещать). Программа обработки исключительных ситуаций определяется ключевым словом catch (захват), за которым следует программный блок, обрабатывающий исключения.

Листинг 18.3 иллюстрирует обработку исключений в языке Java. Это часть программного обеспечения для системы инъекций инсулина, описанной в главе 16. Здесь программный блок управляет датчиком, определяющим величину содержания сахара в крови. В листинге 18.3 сначала объявляется класс исключений путем расширения встроенного класса объектов Exception. Далее приведен код обработки исключительной ситуации.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...