ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
cout << "a+b=" << d << endl;
}
catch(char* s)
{
cout << s << endl;
}
catch(int i)
{
if(i == 1)
cout << "Размеры матриц должны совпадать"
<< endl;
}
. . .
Теперь продемонстрируем другой подход, основанный на иерархии
классов исключений, который избавляет нас от необходимости
обрабатывать каждый тип исключения в отдельности.
Иерархия классов исключений может быть представлена в
следующем виде:
Рис.9. Иерархия исключений, возникающих при работе с матрицами.
При таком представлении классов-исключений достаточно создать
обработчик только для исключения базового типа. Универсальная
обработка исключений-наследников производится с помощью
применения принципа полиморфизма и переопределения виртуальных
функций.
Базовый класс иерархии – класс Exception – является
абстрактным. В нем объявляется виртуальная функция, которая
140
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
cout << "a+b=" << d << endl;
}
catch(char* s)
{
cout << s << endl;
}
catch(int i)
{
if(i == 1)
cout << "Размеры матриц должны совпадать"
<< endl;
}
. . .
Теперь продемонстрируем другой подход, основанный на иерархии
классов исключений, который избавляет нас от необходимости
обрабатывать каждый тип исключения в отдельности.
Иерархия классов исключений может быть представлена в
следующем виде:
Рис.9. Иерархия исключений, возникающих при работе с матрицами.
При таком представлении классов-исключений достаточно создать
обработчик только для исключения базового типа. Универсальная
обработка исключений-наследников производится с помощью
применения принципа полиморфизма и переопределения виртуальных
функций.
Базовый класс иерархии – класс Exception – является
абстрактным. В нем объявляется виртуальная функция, которая
140
Страницы
- « первая
- ‹ предыдущая
- …
- 138
- 139
- 140
- 141
- 142
- …
- следующая ›
- последняя »
