ВУЗ:
Составители:
Рубрика:
110
catch (Exception e)
{
if (e.Message.Equals("Summ"))
{
// действия по обработке ситуации, когда нельзя
// сложить две матрицы
. . .
}
if (e.Message.Equals("Product"))
{
// действия по обработке ситуации, когда нельзя
// умножить две матрицы
. . .
}
// обработка других исключительных ситуаций
. . .
}
Теперь продемонстрируем другой подход, основанный на создании
иерархии классов исключений. При использовании такого подхода для
каждого вида исключительных ситуаций создается свой класс, наследующий
от класса Exception. Эти классы могут содержать свои данные и методы
для корректной передачи информации и обработки соответствующей
исключительной ситуации. Например, для обработки ситуации
невозможности перемножения двух матриц создадим класс:
// класс-исключение о нарушении размеров матриц
// при их перемножении
class DimensionProductException : Exception
{
Matrix ob1, ob2; // ссылки на объекты-матрицы
// конструктор класса-исключения
public DimensionProductException(Matrix a, Matrix b)
{
ob1 = a;
ob2 = b;
}
// метод обработки исключения – печати подробного
// сообщения об ошибке
public void ExceptionHandler()
{
Console.WriteLine("Сделана попытка
перемножения матриц:");
ob1.OutputMatrix();
Console.WriteLine();
catch (Exception e)
{
if (e.Message.Equals("Summ"))
{
// действия по обработке ситуации, когда нельзя
// сложить две матрицы
. . .
}
if (e.Message.Equals("Product"))
{
// действия по обработке ситуации, когда нельзя
// умножить две матрицы
. . .
}
// обработка других исключительных ситуаций
. . .
}
Теперь продемонстрируем другой подход, основанный на создании
иерархии классов исключений. При использовании такого подхода для
каждого вида исключительных ситуаций создается свой класс, наследующий
от класса Exception. Эти классы могут содержать свои данные и методы
для корректной передачи информации и обработки соответствующей
исключительной ситуации. Например, для обработки ситуации
невозможности перемножения двух матриц создадим класс:
// класс-исключение о нарушении размеров матриц
// при их перемножении
class DimensionProductException : Exception
{
Matrix ob1, ob2; // ссылки на объекты-матрицы
// конструктор класса-исключения
public DimensionProductException(Matrix a, Matrix b)
{
ob1 = a;
ob2 = b;
}
// метод обработки исключения – печати подробного
// сообщения об ошибке
public void ExceptionHandler()
{
Console.WriteLine("Сделана попытка
перемножения матриц:");
ob1.OutputMatrix();
Console.WriteLine();
110
Страницы
- « первая
- ‹ предыдущая
- …
- 108
- 109
- 110
- 111
- 112
- …
- следующая ›
- последняя »
