Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Операторы перехода к обработчику ошибок On Error






Оператор On Error делает доступным обработчик ошибок и определяет его положение внутри процедуры и используется также для запрета обработки ошибок. Оператор имеет три формата синтаксиса:

On Error GoTo строка

On Error Resume Next

On Error GoTo 0

On Error GoTo строка делает доступным обработчик ошибок, который начинается со строки, определённой меткой строка. При возникновении ошибки управление выполнением программы передаётся на строку кода с меткой строка. Таким образом, происходит активизация обработчика ошибок. Метка строка должна находиться в той же процедуре, что и инструкция On Error.

On Error Resume Next указывает на то, что при возникновении ошибки управление выполнением программы передаётся на оператор, следующий непосредственно за тем, в котором произошла ошибка. Это действие позволяет продолжить выполнение программы, несмотря на возникновение ошибки времени выполнения (run-time error).

On Error GoTo 0 отключает пользовательский обработчик ошибок в данной процедуре. Эта инструкция не указывает метку 0 в качестве начала обработчика ошибки, даже если в процедуре действительно имеется такая метка.

Пользовательские обработчики ошибок позволяют реагировать на ошибки во время работы пользователя, например, когда вместо числа пользователь вводит текстовое данное или вообще не вводит данное.

В процедуре ПримерOnErrorGoto, приведённой ниже, возникает ошибка ввода до тех пор, пока не будет введено численное значение переменной Num; управление передаётся на метку Ошибка, и оператор Resume возвращает управление оператору Num = InputBox(" Введите число").

Sub ПримерOnErrorGoto()

Dim Num As Single

On Error GoTo Ошибка

Num = InputBox(" Введите число")

MsgBox " Введено число " & Num

Exit Sub

Ошибка:

MsgBox " Число не введено "

Resume

End Sub

В процедуре ПримерOnErrorResumeNextпри возникновении ошибки ввода управление передаётся инструкции If, т.е. инструкции, следующей за той, которая вызвала ошибку, на экран выводится сообщение " Число не введено".

Sub ПримерOnErrorResumeNext()

Dim Num As Single

On Error Resume Next

Num = InputBox(" Введите число, не равное 0")

If Num < > 0 Then

MsgBox " Введено число " & Num

Else

MsgBox " Число не введено"

End If

On Error GoTo 0

End Sub

В процедуре ПримерOnErrorGoto_0 оператор On Error GoTo 0 отключает пользовательский обработчик ошибок в данной процедуре и может быть использован для восстановления нормальной обработки ошибок перед выходом из процедуры. При возникновении ошибки ввода выводится следующее диалоговое окно, сообщающее о несоответствии типа данного введённому значению (“Пусто” или “Не число”).

Sub ПримерOnErrorGoto_0()

Dim Num As Single

On Error GoTo 0

Num = InputBox(" Введите число")

MsgBox " Введено число " & Num

Resume

End Sub






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.