logo
шпоры по ООП

66.Генерации исключения.

В программе можно генерировать исключения. Это достигается использованием конструкции throw, которая может иметь две формы:

throw <выражение генерации исключения>; - исключение формируется здесь как статический объект, значение которого определяется выражением генерации. Исключение формируется внутри функции как локальный объект, копия которого передается за пределы контролируемого блока и инициализирует переменную, использованную при описании обработчика исключения (первый вид конструкции catch). Эта копия существует, пока исключение не будет полностью обработано;

throw; - не всегда исключение, возникшее во внутреннем контролируемом блоке может быть сразу же правильно обработано. В этом случае в обработчике можно использовать сокращенную форму. Этот оператор передает исключение из процедуры обработки в другую процедуру обработки, расположенную на более высоком уровне. Такая ретрансляция возможна только для уже созданного исключения, поэтому данный оператор может использоваться только внутри процедуры обработки исключений и разумен только при вложении контролируемых блоков.

Отсутствие в заголовке функции конструкции throw говорит о том, что функция может порождать любую исключительную ситуацию.