а внутри обработчика: catch(..
Автор admin Воскресенье, 3 мая 2009 11:32
а внутри обработчика: catch(…) { cout « “an exception was thrown” « endl: // Освобождение ресурсов throw: } Остальные секции catch того же блока try игнорируются — команда throw передает исключение обработчикам следующего контекста. Вся информация объекта исключения сохраняется, поэтому обработчики внешнего контекста, перехватывающие конкретные типы исключений, смогут извлечь любую информацию, содержащуюся в объекте. Неперехваченные исключения Как объяснялось в начале главы, обработка исключений лучше традиционной методики с возвратом кода ошибки, поскольку исключения не могут игнорироваться, а обработка исключения отделяется от непосредственно решаемой задачи. Если ни один из обработчиков, следующих за блоком try, не соответствует типу исключения, то исключение передается в контекст следующего уровня, то есть в функцию (или в блок try), в которой находится блок try, не перехвативший исключение, причем местонахождение этого внешнего блока try не всегда очевидно, поскольку он находится на более высоком уровне иерархии. Процесс продолжается до тех пор, пока в какой-то момент для исключения не будет найд
Комментарии закрыты.
Последние комментарии