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>

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


 

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

78134. Оценка поврежденности адгезионного контакта упругих тел 136 KB
  В основу рассуждений кладутся энергетические представления величина площади контакта соответствует минимуму потенциальной энергии системы контактирующих тел. Причинами являются загрязнение поверхности контакта и неполнота контакта слоев и связанные с физической природой...
78135. СНИЖЕНИЕ ПОТЕРЬ ЭНЕРГИИ ПУТЕМ ОПТИМИЗАЦИИ ПРОТИВОБОКСОВОЧНЫХ УСТРОЙСТВ В СИСТЕМЕ «КОЛЕСО-РЕЛЬС» 152 KB
  Рассмотрена задача снижения потерь энергии вследствие скольжения колеса по рельсу. Появилась новая проблема: фрикционные автоколебания возникающие при боксовании могут вызывать повреждения механизмов передачи тяги от ТЭД к колесам.
78136. Перекрытия. Требования, предъявляемые к перекрытиям 1.3 MB
  Требования предъявляемые к перекрытиям. Перекрытия являются одновременно несущими и ограждающими элементами зданий. Перекрытия вместе тем являются горизонтальными диафрагмами связывающими между собой вертикальные несущие конструкции и обеспечивающие устойчивость здания в целом. Кроме того перекрытия подвергаются также воздействиям связанным с эксплуатацией здания эксплутационная влага ударный и воздушный звук и т.
78137. Полы. Требования предъявляемые к полам 456.5 KB
  Полы устраиваются на грунте или по междуэтажным перекрытиям. Покрытия полов разделяют по способу устройства на полы из листовых материалов штучные и сплошные. Полы из листовых материалов К ним относятся полы из тапифлекса линолеля релина полихлоридных плиток древесностружечных и древесноволокнистых плит. Полы упруги эластичны водостойки и гигиеничны.
78138. Крыши. Требования, предъявляемые к крышам 1.29 MB
  В зависимости от величины уклона крыши подразделяются на: Скатные с уклоном более 10; Пологоскатные 410; Плоские 04. Крыши могут быть односкатными двухскатными четырехскатными вальмовыми полувальмовыми и многоскатными а также пирамидальными коническими купольными и сводчатыми рис. Скаты наклонные плоскости крыши.
78139. Кровли. Кровли из волнистых асбестоцементных листов 2.3 MB
  Недостатки: большой собственный вес и необходимость устройства крупного уклона в результате чего увеличивается площадь крыши и следовательно стоимость. Совмещенные крыши устраиваются вентилируемые и невентилируемые. Совмещенные невентилируемые крыши возводятся только в летнее время в районах с сухим климатом и соблюдением необходимых мер по предохранению покрытий от увлажнения. Мансардные крыши применяются при использовании чердака для жилья или хозяйственных помещений.
78140. Перегородки жилых и общественных зданий 1019 KB
  Перегородки представляют собой ненесущие стены, предназначенные для деления в пределах этажа больших, ограниченных капитальными стенами, объемов на отдельные помещения.
78141. Окна и двери 357 KB
  Как ограждающие элементы, окна должны удовлетворять теплотехническим и акустическим требованиям. Они также должны быть увязаны с архитектурно - художественным решением фасадов и интерьеров. Они состоят из створок и фрамуг. Створки и фрамуги бывают открывающиеся и глухие. Открываются, как правило, вовнутрь.
78142. Лестницы 967.5 KB
  Классификация лестниц и требования к ним: Лестницы служат для сообщения между этажами или разными уровнями. По назначению лестницы делятся на: Основные служащие для постоянного пользования и эвакуации; Вспомогательные для служебного сообщения между этажами; Аварийные наружные эвакуационные лестницы; Пожарные устраиваются открыто вне здания. Конструкция лестницы состоит из чередующихся площадок и маршей. В зависимости от числа маршей в пределах высоты одного этажа лестницы бывают одномаршевые двумаршевые трехмаршевые.