Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабник по C.pdf
Скачиваний:
74
Добавлен:
01.06.2015
Размер:
876.9 Кб
Скачать

– 55 –

return charPtr[i]; };

void main (void){ int index;

String Str(10);

for (int i=0; i<10; i++) Str[i]=i+’A’;

try { for(;;) {

cout<<\nВведите индекс: cin>>index; cout<<Str[index];}

}

catch(String::range) // Обработчик исключения

{cout<< Индекс за границей массива\n;}

}

При выполнении программы после заполнения строки соответствующими символами включается блок try, охватывающий фрагмент программы, в котором возможно появление исключительной ситуации. Работа программы в этом блоке, заключающаяся в выведении на экран символа, соответствующего запрашиваемому числу, предполагается бесконечной (это необязательно). При возникновении исключительной ситуации – index>=11 – выполнение программы прерывается, выполняется команда throw range в функции operator[] и управление передается обработчику исключения catch(String::range). (Имя range является произвольным и устанавливает взаимосвязь между исключением и соответствующим обработчиком исключений.)

Обработчик исключения должен следовать за блоком try. Допускается несколько обработчиков, реагирующих на различные виды исключений, например, те, которые возникают при динамическом выделении памяти, при ошибках ввода-вывода, при выполнении арифметических операций и т.п. С помощью рассматриваемого механизма обрабатываются только те исключения, которые возникают при выполнении программы. Прерывание программы пользователем или от аппаратуры (например, нажатие клавиш Ctrl-Break, сигнал таймера) нельзя рассматривать как исключение.

Механизм обработки исключений поддерживает хороший стиль программирования, так как позволяет выделить в программе относительно независимые части: собственно программу – try блок и фрагмент для обработки ошибок – catch блок.

ЛИТЕРАТУРА

1.Керниган Б., Ритчи Д., Фьюер А. Язык программирования С. Задачи по языку С. М.: Финансы и статистика, 1985

2.М.Уэйт, С.Прата, Л.Мартин. Язык СИ. М.: Мир, 1988.

3.Стpаустpуп Б. Пpогpаммиpование на С++. M. 1991.

4.Скляров В.А. Язык С++ и объектно-ориентированное программирование. Минск: Выш.

шк.,1997.

5.Нефоpмальное введение в С++ и TurboVision. М.:Галеpея «Петpополь», 1992.

6.Вайнеp Р., Пинсон Д. С++ изнутpи. М., 1993.

© 1998 Калачев Д.П., Лутай В.Н.

– 56 –

Калачев Дмитрий Петрович Лутай Владимир Николаевич

Учебное пособие «ПРОГРАММИРОВАНИЕ НА ЯЗЫКАХ С И С++»

Ответственный за выпуск

Лутай В.Н.

Редактор

Белова Л.Ф.

Корректор

Пономарева Л.Ф.

ЛР № 020565

Подписано к печати

Формат 60x84 1/16

Бумага офсетная.

Печать офсетная. Усл. п. л. – 3,8 Уч.-изд. л. – 3,5

Заказ №

Тираж 300

 

«С»

Издательство Таганрогского радиотехнического университета ГСП 17А, Таганрог, 28, Некрасовский, 44

Типография Таганрогского радиотехнического университета ГСП 17А, Таганрог, 28, Энгельса, 1

© 1998 Калачев Д.П., Лутай В.Н.