Pomoc Collabora Office 24.04
Resetuje informacje o błędach i wskazuje, co należy wykonać dalej.
Resume [ [0] | label | Next ]
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$.
Erl: Numer wiersza modułu, w którym wystąpił błąd.
Err: Numer błędu.
Error[$]: Opis błędu.
Korzystanie z Resume do resetowania informacji o błędach zapobiega propagacji obsłużonego warunku do procedur wywołujących.
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
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ę.