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>

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


 

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

83189. Стратегический менеджмент как сфера профессиональной деятельности 38.25 KB
  Процесс разработки стратегий включает: 1 определение корпоративной миссии; 2 конкретизацию видения корпорации и постановку целей; 3 формулировку и реализацию стратегии направленной на их достижение. Вместе с тем разработка стратегии на практике процесс творческий.
83190. Славянофильство и западничество: куда идти России? 33.5 KB
  К предыстории относится период с десятых до середины тридцатых годов девятнадцатого столетия. В начале тридцатых годов большинство будущих славянофилов исключая Хомякова были приверженцами философии Шеллинга и их позиция была скорее западнической чем славянофильской.
83191. ИНТЕРНЕТ-ЭКОНОМИКА РОССИИ 40.22 KB
  Как последствие эффективность финансовой работы в современной экономике впрямую находится в зависимости от интенсивности переустройства информации а апофеозом эволюции информационно-коммуникационных технологий стало возникновение Интернета в общем и Интернет-экономики eeconomy в частности.
83192. ВЕНСКАЯ КОНВЕНЦИЯ О ПРАВЕ МЕЖДУНАРОДНЫХ ДОГОВОРОВ 35.5 KB
  Конвенция применяется к договорам заключаемым между государствами в письменной форме. Лицо представляющее государство в целях принятия текста договора либо в целях выражения согласия на обязательность договора должно иметь соответствующие полномочия либо в силу занимаемой должности считаться представляющим свое государство без предъявления полномочий. К последним относятся: главы государств главы правительств министры иностранных дел; главы дипломатических представительств применительно к договорам с государствами в которых они...
83193. ОСНОВНЫЕ ПОДХОДЫ К СТОИМОСТНОЙ ОЦЕНКЕ ОБЪЕКТОВ ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ 70.5 KB
  Отличительными свойствами интеллектуального товара, по сравнению с обычным товаром, являются: редкость, уникальность, конкурентоспособность и другие характеристики. Общим с рынком любого товара является то, что интеллектуальный товар – продукт труда, произведенный для продажи в целях обмена на другие продукты труда или деньги на рынке...
83194. Training for employment in Sweden (Перекваліфікація для працевлаштування у Швеції) 18.38 KB
  Training programs for the unemployed have been cornerstones of labor market policy for many decades. In Sweden, training programs have been used since 1918 and constitute an important part of the so-called Swedish model (or Nordic model) of labor market policy. Among Sweden’s current programs, the employment training program...
83195. Расчётное исследование влияния закона закрутки и тангенциального навала при оптимизации лопаточного аппарата осевого компрессора 707 KB
  В современном турбостроении окончательная доводка проточной части осевого компрессора ОК осуществляется путем трехмерной многокритериальной оптимизации лопаточного аппарата. Современные программные комплексы основанные на методах вычислительной газовой динамики CFD позволяют смоделировать подобное сложное течение что дает возможность уменьшить...
83196. ІНВЕСТИЦІЙНА АКТИВНІСТЬ В НАЦІОНАЛЬНІЙ ЕКОНОМІЦІ УКРАЇНИ: МЕТОДИЧНІ ПІДХОДИ ТА ІНСТРУМЕНТИ ОЦІНКИ 57.12 KB
  У сучасних умовах інвестиції виступають важливим елементом розвитку як національної економіки, так і економіки в цілому. Залучення інвестицій забезпечує науково-технологічний прогрес, стрімке економічне зростання, збільшення показників господарської діяльності країни, регіону, підприємства тощо.