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>

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


 

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

7504. Критический утопический социализм 24.5 KB
  Критический утопический социализм. Появляется как реакция на разочарование в результатах Французской буржуазной революции. Представители этого направления критикуют современный им буржуазный строй и предлагают свои проекты преобраз...
7505. Основные идеи эпохи Просвещения 32 KB
  Основные идеи эпохи Просвещения. Эпоха Просвещения - это период идеологической подготовки к утверждению политической власти буржуазии. В этот период происходит утверждение буржуазных ценностей таких как: ценность жизни, свободы и равенства (юридичес...
7506. Экология: конспект лекций 843.5 KB
  Предлагаемое пособие поможет студентам в решении именно этой задачи применительно к курсу Экология. Содержание и структура пособия соответствуют требованиям Государственного образовательного стандарта высшего профессионального образования. Издание п...
7507. Учет и регулирование потребления электрической энергии 112.61 KB
  Учет и регулирование потребления электрической энергии. Бытовое энергосбережение В жилищном хозяйстве потребляется около 30% тепловой энергии, которая получается от сжигания твердого, жидкого и газообразного топлива. Поэтому, экономия топлива ...
7508. Экономия электроэнергии в электроснабжающих установках 60.8 KB
  Экономия электроэнергии в электроснабжающих установках Электроснабжение сельских потребителей осуществляют в основном от сетей государственных электросистем. К сельским потребителям электрическую энергию подают по линиям напряжением 6, 10, 20, 35 кВ...
7509. Экономия электроэнергии в осветительных и электронагревательных установках 76.71 KB
  Экономия электроэнергии в осветительных и электронагревательных установках На освещение в сельском хозяйстве затрачивают 10...15% всей потребляемой электроэнергии, то есть более 15 млрд. кВт·ч в год. Наряду с другими устройствами электрическое освещ...
7510. Экономия электрической энергии при эксплуатации оборудования 121.34 KB
  Экономия электрической энергии при эксплуатации оборудования В сельском хозяйстве действует огромный парк электродвигателей, насчитывающий 12 млн. единиц общей мощностью 50...60 млн. кВт. Практически все стационарные рабочие сельскохозяйственные маш...
7511. Нетрадиционные способы получения и применения энергии 113.67 KB
  Нетрадиционные способы получения и применения энергии Главным фактором роста энергопроизводства является рост численности населения и прогресс качества жизни общества, который тесно связан с потреблением энергии на душу населения. Сейчас на каждого ...
7512. Модели рыночной экономики 43 KB
  Модели рыночной экономики. Для каждой экономической системы характерны свои национальные модели организации хозяйства, так как страны различаются своеобразием истории, уровнем экономического развития, социальными и национальными условиями. Поэтому м...