Студопедия

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

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

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






  • Операторы перехода к обработчику ошибок 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 :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.