Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Операторы перехода к обработчику ошибок On Error ⇐ ПредыдущаяСтр 3 из 3
Оператор 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
|