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>

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


 

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

35610. Новогодняя игрушка. Творческий проект 25.18 KB
  Нитки Шарики Клей ПВА Технологический процесс. Затем шерстяные нитки обмочим в клее ПВА и начинаем наматывать на шарик. Смачиваем шерстяные нитки в клее ПВА. Затем аккуратно начинаем наматывать на шарик нитки.
35612. Ассоль. (техника- вышивка гладью) 384.5 KB
  Правила безопасности во время работы Во время работы ножницы должны лежать справа на столе с сомкнутыми лезвиями кольцами к работающему. Брать и передавать ножницы нужно сомкнутыми лезвиями к себе кольцами вперёд. Иглы булавки ножницы наперсток хранят в специальной шкатулке с крышкой. Выравнивание краев ткани Ткань размером 30x40 Измерение Линейка карандаш ножницы.
35613. Профессия графический дизайнер. Творческий проект 2 MB
  Мой логотип Визитная карточка Мои проекты и работы Разработка подарочной упаковки для фирмы diva Упаковка играет сегодня огромную роль в развитии потребительского рынка являясь важной составляющей имиджа брендов. Этапы разработки упаковки На начальном этапе разработки упаковки осуществляется выбор материала определение формы размера цветового решения разработка текста изображения и конструкции упаковки. При разработке оформления упаковки индивидуальный образ фирмы был сохранен так как подарочная упаковка создавалась именно по...
35614. Пошив юбки. Разработка творческого проекта 1.89 MB
  Юбки запаски тканые с поперечными полосами. Развивала свои творческие способности и художественное виденье предметов с помощью изготовления юбки. Идеально подходит для юбки-солнца на мой взгляд крепсатин.
35616. ШКОЛА ТВОРЧЕСКОЙ ЖИЗНИ. ПРОЕКТ 221 KB
  По его вине Древо Жизни утратило крону. ПРОЕКТ ШКОЛА ТВОРЧЕСКОЙ ЖИЗНИ Принцип устойчивости экодеревни Проблемы экодеревень ПУТИ РЕАЛИЗАЦИИ ПРОЕКТА: Экономическая деятельность в поселении Природные виды деятельности Виды деятельности связанные с информационными технологиями Научная деятельность Искусство Народные ремёсла Медицина Туризм Строительство Малые производства Культура Образование Безопасная интеграция в природную среду Топология экологического поселения Проект...
35617. Шарлотка. Творческий проект 68.02 KB
  Тема: Шарлотка. Но от салата я отказалась И решила приготовить пирог шарлотка. Шарлотка фр. Классическая шарлотка это французское сладкое блюдо приготовленное из белого хлеба заварного крема фруктов и ликёра.
35618. Мой выбор. Творческий проект 33.32 KB
  Правильный выбор профессии позволит мне так построить свою будущую карьеру чтобы достичь выдающихся успехов. Можно выделить следующие подпроблемы: Проблемное поле анализа профессиональной деятельности Изучение алгоритма выбора профессии Выявление и анализ личностных и психофизиологических характеристик Изучение требований...