ВУЗ:
Составители:
Рубрика:
109
6.3. Создание иерархии исключений
Обработка исключений является удобным способом предотвращения
аварийного завершения программы в случае попытки выполнения каких-
либо некорректных действий. Для этого используется класс Exception
пространства имен System, с помощью которого передается информация о
возникшей проблеме. Когда же в программе требуется предусмотреть
возможность появления различных по типу и обработке исключительных
ситуаций, использовать один класс Exception и соответствующий ему
обработчик catch становится неудобным, так как обработчик должен
включать в себя все возможные обработки исключительных ситуаций.
Рассмотрим такую ситуацию на примере. При работе с матрицами
исключительные ситуации могут возникнуть в случаях, когда:
конструктор получает неположительные значения количества
строк или столбцов;
происходит обращение к элементу матрицы по некорректным
индексам;
при выполнении операции сложения размеры двух матриц не
совпадают;
при выполнении операции умножения количество столбцов
первой матрицы не совпадает с количеством строк второй
матрицы;
при вычислении обратной матрицы исходная матрица
оказывается вырожденной.
Если во всех этих случаях пользователю необходимо показать только
сообщение об ошибке и прервать выполнение блока try, то достаточно
использовать только стандартное исключение Exception, передав в его
поле Message необходимое сообщение. Однако если требуется более
сложная обработка ошибки, – например, корректировка данных, приведение
матриц к определенному виду и повторное выполнение операции, вызвавшей
исключение – единый обработчик будет сложным и неудобным:
try
{
// код, в котором могут возникнуть
// исключения с матрицами
}
6.3. Создание иерархии исключений
Обработка исключений является удобным способом предотвращения
аварийного завершения программы в случае попытки выполнения каких-
либо некорректных действий. Для этого используется класс Exception
пространства имен System, с помощью которого передается информация о
возникшей проблеме. Когда же в программе требуется предусмотреть
возможность появления различных по типу и обработке исключительных
ситуаций, использовать один класс Exception и соответствующий ему
обработчик catch становится неудобным, так как обработчик должен
включать в себя все возможные обработки исключительных ситуаций.
Рассмотрим такую ситуацию на примере. При работе с матрицами
исключительные ситуации могут возникнуть в случаях, когда:
конструктор получает неположительные значения количества
строк или столбцов;
происходит обращение к элементу матрицы по некорректным
индексам;
при выполнении операции сложения размеры двух матриц не
совпадают;
при выполнении операции умножения количество столбцов
первой матрицы не совпадает с количеством строк второй
матрицы;
при вычислении обратной матрицы исходная матрица
оказывается вырожденной.
Если во всех этих случаях пользователю необходимо показать только
сообщение об ошибке и прервать выполнение блока try, то достаточно
использовать только стандартное исключение Exception, передав в его
поле Message необходимое сообщение. Однако если требуется более
сложная обработка ошибки, – например, корректировка данных, приведение
матриц к определенному виду и повторное выполнение операции, вызвавшей
исключение – единый обработчик будет сложным и неудобным:
try
{
// код, в котором могут возникнуть
// исключения с матрицами
}
109
Страницы
- « первая
- ‹ предыдущая
- …
- 107
- 108
- 109
- 110
- 111
- …
- следующая ›
- последняя »
