68962

Обробка похідних виняткових ситуацій

Лекция

Информатика, кибернетика и программирование

Якщо виняткові ситуації описуються за допомогою базового і похідних класів, при роботі з операторами catch слідує проявлять максимальну обережність, оскільки оператор catch, відповідний базовому класу, одночасно відповідає всім похідним класам.

Украинкский

2014-09-28

23 KB

0 чел.

Лекція № 24

Тема: Обробка похідних виняткових ситуацій

Якщо виняткові ситуації описуються за допомогою базового і похідних класів, при роботі з операторами catch слідує проявлять максимальну обережність, оскільки оператор catch, відповідний базовому класу, одночасно відповідає всім похідним класам. Таким чином, якщо необхідно перехопити виняткові ситуації базового і похідних класів, в послідовності операторів catch похідний клас слід обробляти першим. Якщо цього не зробити, оператор catch, відповідний базовому класу виняткової ситуації, також перехоплюватиме виняткові ситуації всіх похідних класів. Розглянемо наступну програму.

// Перехоплення похідних класів.

#include <iostream>

using namespace std;

class В

{

};

class D: public В

{

};

int main()

{

D derived;

try {

 throw derived;

} catch(B b) {

cout « "Перехоплення базового класу.\ п";

} catch(D d) {

cout « "Цей оператор не виконується.\ п";

}

return 0;

}

Оскільки об'єкт derived є екземпляром похідного класу він буде перехоплений першим оператором catch, а другий оператор catch ніколи виконуватися не буде. Деякі компілятори в таких випадках видають попередження. Інші компілятори взагалі вважають це помилкою. Так або інакше, щоб виправити цю ситуацію, слід поміняти порядок проходження операторів catch.


 

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

15329. Редактор материалов. Создание текстур материалов 3.9 MB
  Тема 4: Редактор материалов. Создание текстур материалов 1. Создание текстуры древесины Создайте объект типа Box рис. 1.1 Рис. 1.1 Откройте редактор материалов выполнив последовательность команд: Rendering ~Material Editor или нажав кнопку
15330. Создание интерьера бассейна в 3Ds Max 1.96 MB
  Тема 6: Создание интерьера бассейна В результате выполнения этой работы Вы должны получить визуализированную сцену изображенную на рисунке. 1. Двумерные формы. Модификаторы двумерных форм Цель: освоить технологию создания д
15332. Основы работ со статическими изображениями в программе трехмерной графики 3ds max 4.96 MB
  Тема 5: Основы работ со статическими изображениями в программе трехмерной графики 3ds max. Этапы создания трехмерных сцен Проект Создадим уголок части комнаты в которой располагается стол. На столе стоит бокал со льдом. Для указанно...
15333. Процессы включения и отключения цепи с конденсатором 1.71 MB
  Рассчитать докоммутационные t = 0 начальные t = 0 и установившиеся t → ∞ значения токов и напряжения на конденсаторе в цепи Рис. 1. в двух случаях: 1. ключ размыкается; 2. ключ замыкается. R1= 330 Ом; R2=220 Ом; U= 15 В; С= 10 мкФ Рису...
15334. Процессы включения и отключения цепи с катушкой индуктивности 75 KB
  Общие сведения Цепь с одной катушкой индуктивности так же как и цепь с одним конденсатором описывается дифференциальным уравнением первого порядка. Поэтому все токи и напряжения в переходном режиме изменяются по экспоненциальному закону с одной и той же постоянной вр
15335. Исследование переходных процессов в линейных электрических цепях 94 KB
  Подготовка к работе В замкнутом контуре рис.1 после отключении его от источника постоянного или переменного напряжения могут возникнуть затухающие синусоидальные колебания обусловленные начальным запасом энергии в электрическом поле конденсатора и в магнитном
15336. Изучение алгоритма Дейкстры и реализация его для заданного графа на языке программирования С++ 344.5 KB
  Лабораторная работа №1 по дисциплине Структуры и алгоритмы обработки данных Цель работы: Изучение алгоритма Дейкстры и реализация его для заданного графа на языке программирования С. Алгоритм Дейкстры англ. Dijkstras algorithm алгоритм на графах изобретённый н