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!