Обработанным;
Обработчик, как и обычная функция, может заявить исключение. Более того,
В нем может использоваться оператор throw без параметра, что означает
Повторное генерирование исключения, обрабатываемого в данный момент;
СРАВНЕНИЕ ИСКЛЮЧЕНИЙ С ТРАДИЦИОННЫМИ СПОСОБАМИ
ОБРАБОТКИ ОШИБОК
Сравним традиционные подходы к обработке ошибки и концепцию
Генерирования исключительных ситуаций на примере обнаружении выхода
индекса в операторе [ ] класса Vector за допустимые границы. Рассмотрим
возможные традиционные варианты обработки ошибки:
Завершить программу, выдав сообщение об ошибке.
Возвратить условленное значение, обозначающее ошибку.
Возвратить значение, как при нормальном завершении, выставив
Некоторый (внешний) признак ошибки.
Вызвать функцию, предназначенную для вызова в случае ошибки (error
Handler functions).
Для обработки исключений случай 1 фактически реализуется по
Умолчанию, когда заявленное событие не обрабатывается. Однако во многих
Ситуациях при возникновении ошибок можно и нужно поступать более
Изобретательно.
Реализовать случай 2 не всегда возможно. Например, в нашем случае нет
приемлемого возвращаемого значения для обозначения ошибки – любое
значение типа T является корректным результатом для оператора [ ]. Кроме
Того, этот подход весьма утомителен, т.к. при каждом использовании оператора
[ ] следовало бы проверять возвращенное значение. Поэтому такой подход
Редко используется для систематической проверки возникновения всех ошибок.
Оставить программу с обозначенной, но не обработанной ошибкой, что
Соответствует случаю 3, опасно, так как вызывающая функция может не
Заметить, что в вызываемой функции оказалось не все в порядке. Например,
Date: 2015-12-12; view: 469; Нарушение авторских прав Понравилась страница? Лайкни для друзей: |
|
|