Оператор Resume

Нулира информацията за грешка и указва какво да се изпълни по-нататък.

Синтаксис:

Диаграма на оператора Resume

Resume [ [0] | label | Next ]

Параметри:

0 нулира информацията за грешка и изпълнява наново инструкцията, предизвикала грешката. Аргументът 0 не е задължителен.

label: нулира информацията за грешка и продължава изпълнението от зададения етикет в текущата подпрограма.

Next: нулира информацията за грешка и изпълнява инструкцията след тази, която е предизвикала грешката.

Информацията за грешката се изгражда с функциите Erl, Err и Error$.

tip

Нулирането на информацията за грешка с Resume предотвратява разпространението на обработеното условие към извикващите подпрограми.


Кодове за грешка:

20 Продължаване без грешка

Примери:

Типичните действия при обработка на грешки са: уведомяване на потребителя, поправяне на грешката, записване на информация за грешката в регистрационен файл, генериране на потребителски грешки, предоставящи обяснения с упътване за разрешаване на проблема. Когато са необходими подобни механизми, използвайте Resume етикет.

Sub Error_Handling
try: On Error GoTo catch
    ' място за кода на подпрограмата
    Error 91 ' примерна грешка
finally:
    ' място за почистващия код
    Exit Sub
catch:
    Print Erl, Err, Error$
    Resume finally
End Sub ' Error_Handling

Resume Next може да се използва например за докладване на аномалии в итеративен процес, който не трябва да се прекъсва. В такъв случай може да са необходими няколко подпрограми за обработка.

Sub Iteration
    planets = Array("☿","♀","♁","♂","♃","♄","⛢","♆")
try:
    On Error GoTo ReportAndProcessNext
    For ndx = -3 To 11 Step 1
        MsgBox planets(ndx)
    Next
    On Error GoTo 0 ' Stop error catching
finally:
    Exit Sub
ReportAndProcessNext:
    Print "Error "& Err &" at line "& Erl &" - "& Error$
    Resume Next
End Sub ' Iteration
warning

В някои случаи може да е уместно използването на Resume без параметри за повторно изпълнение на проблемната инструкция. Това обаче може да предизвика безкраен цикъл.


Моля, подкрепете ни!