Оператор Raise

Оператор Raise возбуждает исключительную ситуацию.

raise-statement:

Raise   expressionopt

Оператор Raise с указанным выражением вызывает возбуждение исключительной ситуации со значением, полученным в результате вычисления выражения. Данное значение должно представлять собой экземпляр объекта тип которого совпадает или является производным от System.Exception. Если в результате вычисления выражения получается Null, то возбуждается исключительная ситуация класса System.NullReferenceException.

Оператор Raise без указания выражения может быть использован только внутри обработчика исключительной ситуации в блоке Except оператора Try. В этом случае он инициирует продолжение обработки (т.е. дальнейшее пробрасывание) текущей исключительной ситуации, обрабатываемой в данный момент.

При возбуждении исключительной ситуации управление передается первому блоку Except в одном из объемлющих операторов Try, который может произвести обработку данной исключительной ситуации. Процесс, который выполняется после возбуждения исключительной ситуации и до передачи управления подходящему обработчику называется пробрасыванием исключения. Пробрасывание исключения заключается в повторном выполнении следующих шагов до тех пор пока не будет найден подходящий обработчик. В данном описании под точкой возбуждения изначально понимается место в программе, где была возбуждена исключительная ситуация.

Пример

Private Sub TestRaise();
Begin
    Try
        //Генерация ошибки
        Raise New Exception("Ошибка выполнения!");
    Except On Ex: Exception Do
        //Обработка ошибки
    Finally
    End Try;
End Sub;

См.также:

Операторы перехода