Instrukcja Resume

Resetuje informacje o błędach i wskazuje, co należy wykonać dalej.

Składnia:

Diagram instrukcji Resume


     Resume [ [0] | label | Next ]
   

Parametry:

0: Resetuje informacje o błędzie i ponownie wykonuje instrukcję, która spowodowała błąd. 0 jest opcjonalne.

label: Resetuje informacje o błędzie i wznawia wykonywanie pod określoną etykietą bieżącego podprogramu.

Next: Resetuje informacje o błędzie i wykonuje instrukcję następującą po tej, która spowodowała błąd.

Informacje o błędach są tworzone za pomocą funkcji Erl, Err i Error$.

tip

Korzystanie z Resume do resetowania informacji o błędach zapobiega propagacji obsłużonego warunku do procedur wywołujących.


Kody błędów:

20 Kontynuacja z pominięciem błędu

Przykłady:

Typowe procedury obsługi błędów to: ostrzeganie użytkownika, naprawianie błędu, rejestrowanie informacji o błędzie lub ponowne zgłaszanie błędów niestandardowych, które zawierają wyjaśnienia wraz z instrukcjami rozwiązania. Użyj Resume label, gdy wymagasz takich mechanizmów.


      Sub Error_Handling
      try: On Error GoTo catch
          ' miejsce na kod procedury
          Error 91 ' przykładowy błąd
      finally:
          ' miejsce na kod z końcowym czyszczeniem
          Exit Sub
      catch:
          Print Erl, Err, Error$
          Resume finally
      End Sub ' Error_Handling
    

Użyj Resume Next na przykład podczas zgłaszania napotkanych anomalii w procesie iteracyjnym, którego nie wolno przerywać. W takim przypadku może być wymagane wiele procedur obsługi.


      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

Użycie Resume bez parametrów do ponownego wykonania błędnej instrukcji może pasować do pewnych sytuacji. Jednak może to spowodować niekończącą się pętlę.


Prosimy o wsparcie!