Объектно-ориентированное программирование на C++. Андрианова А.А - 142 стр.

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
cout << "Размерности суммируемых матриц должны
совпадать" << endl;
}
};
// класс исключения несоответствия размеров,
// возникающего при умножении матриц
class DimensionProductException : public Exception
{
public:
void ShowMessage()
{
cout << "Количество столбцов первой матрицы
должно совпадать с количеством строк
второй матрицы" << endl;
}
};
// класс исключения, возникающего при вычислении обратной
// матрицы - деление на определитель, равный 0.
class ZeroDivideException : public Exception
{
public:
void ShowMessage()
{
cout << "Деление на 0" << endl;
}
};
Каждый класс исключений может содержать дополнительную
информацию о возникшей ошибке. Например, в классе
DimensionSumException могут храниться размеры суммируемых
матриц. Далее их можно использовать для вывода сообщения,
содержащего информацию об ошибке, возникающей при сложении двух
матриц. В этом случае класс-исключение должен содержать конструктор
с параметрами, инициализирующий эти элементы.
Классы-исключения могут содержать и другие методы, которые
позволяют, если не устранить ошибку, то хотя бы предотвратить ее
влияние на последующий ход выполнения программы (корректное
освобождение ресурсов, занимаемых объектом, присвоение переменным
объекта корректных значений и пр.).
Теперь, имея иерархию исключений, наследуемых от базового класса
Exception, можно изменить тип генерируемых исключений:
// генерация исключения в операции умножения матриц
142
                              Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
               cout << "Размерности суммируемых матриц должны
                                                 совпадать" << endl;
           }
      };

      // класс исключения несоответствия размеров,
      // возникающего при умножении матриц
      class DimensionProductException : public Exception
      {
      public:
           void ShowMessage()
           {
                cout << "Количество столбцов первой матрицы
                          должно совпадать с количеством строк
                          второй матрицы" << endl;
           }
      };

      // класс исключения, возникающего при вычислении обратной
      // матрицы - деление на определитель, равный 0.
      class ZeroDivideException : public Exception
      {
      public:
           void ShowMessage()
           {
                cout << "Деление на 0" << endl;
           }
      };

     Каждый класс исключений может содержать дополнительную
информацию      о    возникшей     ошибке.   Например,    в    классе
DimensionSumException могут храниться размеры суммируемых
матриц. Далее их можно использовать для вывода сообщения,
содержащего информацию об ошибке, возникающей при сложении двух
матриц. В этом случае класс-исключение должен содержать конструктор
с параметрами, инициализирующий эти элементы.
     Классы-исключения могут содержать и другие методы, которые
позволяют, если не устранить ошибку, то хотя бы предотвратить ее
влияние на последующий ход выполнения программы (корректное
освобождение ресурсов, занимаемых объектом, присвоение переменным
объекта корректных значений и пр.).
     Теперь, имея иерархию исключений, наследуемых от базового класса
Exception, можно изменить тип генерируемых исключений:
      // генерация исключения в операции умножения матриц


142