69717

Стандартні виключення

Лекция

Информатика, кибернетика и программирование

Всі конструктори і методи мають специфікацію, що забороняє генерацію виключень. Функція-метод what() видає рядок-повідомлення про помилку. Передбачається, що виключення типу logicerror сигналізують про помилки в логіці програми, наприклад про невиконання деякої умови.

Украинкский

2014-10-09

27.5 KB

0 чел.

Тема 7: Стандартні виключення

У мові C++ у складі стандартної бібліотеки реалізований ряд стандартних виключень, які організовані в ієрархію класів.

Лістинг 4.1. Ієрархія стандартних виключень

class exception {// ... };

class logic_error : public exception {// ... };

class domain_error : public logic_error {// ...  };

class invalid_argument : public logic__error {// ... };

class length_error : public logic^error {//  ...  }:

class out_of__range : public logic_error {//... }; class runtime_error : public exception {//... };

class range_error : public runtime_error {// ... };

class overflow_error : public runtime_error {

class underflow_error : public runtime_error {// ...  }; class bad_alloc : public exception {// ... }; class bad_cast : public exception {// ... }; class bad_tipeid : public exception {// ... }; class bad_exception : public exception {// ... ): class ios_base::failure : public exception {// ... .};

Ця ієрархія служить основою для створення власних виключень і ієрархій виключень. Ми маємо право визначати свої власні виключення, успадкувавши їх від класу exception.

Клас exception визначений в стандартній бібліотеці таким чином:

class exception {

public:

exception () throw();

exception (const exceptions) throw();

exceptions operator= (const exceptions) throw();

virtual -exception () throw();

virtual const char* what () const throw();

}:

Всі конструктори і методи мають специфікацію, що забороняє генерацію виключень. Функція-метод what() видає рядок-повідомлення про помилку. Передбачається, що виключення типу logicerror сигналізують про помилки в логіці програми, наприклад про невиконання деякої умови. Категорія runtimeerror - це помилки, які виникають в результаті непередбачених обставин при виконанні програми, як, скажімо, переповнювання при операціях з дробовими числами. Такі виключення програма повинна порушувати самостійно оператором throw.

П'ять стандартних виключень породжують різні механізми C++. Ці виключення теж можна використовувати в операторові throw явним чином, проте

робити це не рекомендується. Виключення badalloc генерує операція new (або new[]), якщо запит на пам'ять не може бути задоволений. Виключення badcast і badtypeid збуджуються механізмом RTTI (Run-time Type Identification - динамічна ідентифікація типів). Системою введення/виводу генерується ios_base:: fail ярмі. Виключення bad_exception описане раніше. Для роботи із стандартними виключеннями в програмі треба прописати оператора #include <stdexcept>

Оскільки обробка виключень супроводжується накладними витратами часу і пам'яті під час виконання програми, в інтегрованому середовищі необхідно включити відповідний режим, що вирішує обробку виключень (див. додаток В).


 

А также другие работы, которые могут Вас заинтересовать

36813. Приготовление раствора точной заданной концентрации 69.5 KB
  Тема: Приготовление раствора точной заданной концентрации. Умения: Используя рациональные способы ведения технологических процессов учиться готовить растворы различной концентрации уметь рассчитывать массу вещества массу раствора нормальность и титр. Титр показывает сколько граммов вещества растворено в 1мл раствора. Как приготовить 250мл 01 Н раствора перекристаллизованной чистой двухосновной щавелевой кислоты Н2С2О4 2Н2О которую используют для...
36814. ИЗУЧЕНИЕ ПОГЛАЩЕНИЯ СВЕТА 916.5 KB
  КРАТКАЯ ТЕОРИЯ Прохождение света через вещество ведет к возникновению колебаний электронов вещества под воздействием электромагнитного поля волны и сопровождается потерей энергии этой волны затрачиваемой на возбуждение колебаний электронов. Поэтому интенсивность падающего света по мере проникновения волны в вещество уменьшается. Действительно интенсивность световой волны прошедшей среду толщиной d уменьшается по закону: I=I0ekd 1 где I0 ...
36815. Моделирование командных генераторов гармонических сигналов 55.5 KB
  Цель работы: определить схемы с помощью которых можно задать воздействие и рассчитать их параметры. схема моделирования Определим параметры модели: задание сигнала 2. схема моделирования Определим параметры модели: Таким образом данная схема не реализует синусоидальный сигнал невозможно скомпенсировать косинусоидальную составляющую. схема моделирования Определим параметры модели: задание сигнала 4.
36816. Информационно – образовательная среда вуза 73.5 KB
  Содержание работы: Задание №1 Сформируйте электронный глоссарий по тематике Информационно образовательная среда: База данных Банк данных Дистанционное обучение Индивидуальный образовательный маршрут Индивидуальная образовательная траектория Информатизация образования Информационная деятельность Информационная подготовка Информационно коммуникационная среда Информационно коммуникационная предметная среда Информационно методическое обеспечение учебно воспитательного процесса Информационнообразовательная...
36817. Изучение возможностей работы в текстовом редакторе MS Word 64 KB
  проделайте следующие операции: Создайте тестовый документ с помощью меню Файл Создать. Установите параметры и размеры страницы открыв диалоговое окно Параметры страницы в меню Файл. Чтобы отменить ваши неправильные действия воспользуйтесь командой Отменить из меню Правка. Чтобы вернуть отмененное действие воспользуйтесь командой Повторить из меню Правка.
36818. ВЫБОР МЕТОДОВ И СРЕДСТВ ИЗМЕРЕНИЙ ЛИНЕЙНЫХ РАЗМЕРОВ 327 KB
  Лабораторная работа № 1 ВЫБОР МЕТОДОВ И СРЕДСТВ ИЗМЕРЕНИЙ ЛИНЕЙНЫХ РАЗМЕРОВ Цель работы: учебная получить навыки работы с нормативными документами для выбора методов и средств измерений линейных размеров; практическая выбрать для измерения линейных размеров детали выданной руководителем в соответствии с номером подгруппы соответствующие универсальные измерительные средства и указать их метрологические характеристики.80 всех видов измерений составляют линейные измерения. Любой линейный размер может быть измерен различными...
36819. ОЗНАКОМЛЕНИЕ С СИСТЕМОЙ MATLAB. ОДНОМЕРНЫЕ РАСПРЕДЕЛЕНИЯ ТЕОРИИ ВЕРОЯТНОСТЕЙ И МАТЕМАТИЧЕСКОЙ СТАТИСТИКИ 93.5 KB
  Язык программирования Matlab является интерпретатором. Это значит, что каждая инструкция программы распознается и тут же исполняется. Этап компиляции полной программы отсутствует. Интерпретация означает, что Matlab не создает исполняемых конечных программ. Они существуют лишь в виде m-файлов (файлов с расширением m)
36820. Определение уровня качества технических средств защиты информации 146.5 KB
  Цель работы Изучение методов определения показателей качества технических средств защиты информации и практическое определение их уровня качества с использованием комплексных показателей. Основные понятия термины и определения теории качества Технические средства защиты информации ТСЗИ в большинстве случаев представляют собой радиоэлектронные устройства РЭУ предназначенные для обнаружения и подавления прослушивающих устройств шифрования и кодирования информации защиты информации в возможных каналах утечки. Поэтому знание методов...
36821. ИЗУЧЕНИЕ РАВНОУСКОРЕННОГО ДВИЖЕНИЯ НА МАШИНЕ АТВУДА 101 KB
  ОТЧЁТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 1 ИЗУЧЕНИЕ РАВНОУСКОРЕННОГО ДВИЖЕНИЯ НА МАШИНЕ АТВУДА. В первом случае используя формулу пути при равноускоренном движении h=1t2 2 получим 1=2h t2 1 где пройденный грузами путь h и время движения t измеряются непосредственно. При втором способе формулу для определения ускорения на этом участке движения h получим из рассмотрения изменения энергии системы Ek= Где v линейная...