Оператор 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 без параметри за повторно изпълнение на проблемната инструкция. Това обаче може да предизвика безкраен цикъл.


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