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>

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


 

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

39847. Организуем компьютерное рабочее место 1.23 MB
  Настройка параметров новых документов. Настройка параметров системы КОМПАС3D LT означает выбор параметров оформления чертежа в соответствии с Единой системой конструкторской документации ЕСКД которые наилучшим образом соответствуют выбранному вами формату чертежа. Ранее вы уже познакомились с некоторыми принципами настройки параметров системы см.
39848. ЭКОНОМИКА, И УПРАВЛЕНИЕ ПРОИЗВОДСТВОМ 718.5 KB
  Именно на этом уровне создается нужные обществу товары и услуги, выпуск необходимой продукции. На предприятии сосредоточены наиболее квалифицированные кадры. Здесь решаются вопросы экономного расходования ресурсов, применение высокопроизводительной техники, технологии.
39849. Назначение и принцип действия изделия, сборочной единицы, в которую входит деталь 758 KB
  Форма детали позволяет получать заготовку простой формы с минимальными припусками.25 Диаметр отверстия шпинделя мм 55 Внутренний конус шпинделя Морзе 6 Частота вращения шпинделя мин –1 12.1000 Частота вращения шпинделя мин.9 Скорость быстрых перемещений суппорта мм мин.
39850. Проектирование участка механической обработки для изготовления детали узла 53-320-ГОСТ 387 KB
  Проектируемые и реализуемые производственные процессы должны обеспечивать решение следующих задач: выпуск продукции необходимого качества, без которого затраченные на неё труд и материальные ресурсы будут израсходованы бесполезно; выпуск требуемого количества изделий в заданный срок при минимальных затратах живого труда и вложенных капитальных затратах.
39851. Проектирование участка механической обработки деталей узла Мотоблока 1.61 MB
  Развитие и повышение эффективности машиностроения возможно при существенном росте уровня автоматизации производственного процесса. В последние годы широкое распространение получили работы по созданию новых высокоэффективных автоматизированных механосборочных производств и реконструкции действующих производств
39852. Проектирование участка механической обработки детали узла 58-308-00СБ Деталь: Вал-шестерня 58-308-01 N=400 шт 2 MB
  В связи с изменением методов проектирования и структуры технологической оснастке и широкое применение получит оснастка многократного использования. Опыт работы заводов показывает, что внедрение переналаживаемых станочных приспособлений в 2-3 раза сокращает трудоемкость проектирование и в 3-4 раза цикл изготовления станочных приспособлений.
39854. Разработка технологического процесса механической обработки деталей узла Редуктор - 338 – Б – 0002 1.34 MB
  Проектируемые и реализуемые производственные процессы должны обеспечивать решение следующих задач: выпуск продукции необходимого качества, без которого затраченные на неё труд и материальные ресурсы будут израсходованы бесполезно; выпуск требуемого количества изделий в заданный срок при минимальных затратах живого труда и вложенных капитальных затратах.
39855. Проектирование участка механической обработки для изготовления детали узла МБ – 901 «Барабан сцепления ведомый» 236.5 KB
  Проектируемые и реализуемые производственные процессы должны обеспечивать решение следующих задач: выпуск продукции необходимого качества без которого затраченные на нее труд и материальные ресурсы будут израсходованы бесполезно; выпуск требуемого количества изделий в заданный срок при минимальных затратах живого труда и вложенных капитальных затрат. В дальнейшем это позволит создавать интегрированные производства обеспечивающие автоматизацию основных и вспомогательных процессов и при минимальном участии человека в производственном...