Nápověda Collabora Office 24.04
Vymaže informaci o chybě a určí, co se má spustit jako další.
Resume [ [0] | label | Next ]
0: Vymaže informaci o chybě a znovu spustí instrukci, která chybu způsobila. Hodnota 0 je nepovinná.
label: Vymaže informaci o chybě a spustí aktuální podprogram od určeného návěstí.
Next: Vymaže informaci o chybě a spustí další instrukci následující po té, která chybu způsobila.
Informace o chybě je vytvořena pomocí funkcí Erl, Err a Error$.
Erl: Číslo řádku modulu, na němž byla chyba vyvolána.
Err: Číslo chyby.
Error[$]: Popis chyby.
Vymazání informace o chybě pomocí Resume zabrání tomu, aby se ošetřovaná podmínka propagovala do procedur, které ji zavolaly.
Typickými procedurami pro zpracování chyb mohou být: upozornění uživatele, oprava chybu, záznam informací o chybě nebo vyvolání nové, vlastní chyby, která bude obsahovat vysvětlení a postup řešení. Pro takové případy použijte tvar Resume label.
Sub Error_Handling
try: On Error GoTo catch
' místo pro kód procedury
Error 91 ' ukázková chyba
finally:
' místo pro kód se závěrečným úklidem
Exit Sub
catch:
Print Erl, Err, Error$
Resume finally
End Sub ' Error_Handling
Resume Next použijte například tehdy, když popisujete nesrovnalosti objevené během iterování, které nelze přerušit. V tom případě může být pro zpracování vyžadováno několik procedur.
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
Resume bez parametrů použijte tehdy, chcete-li znovu spustit instrukci, která chybu způsobila. To však může způsobit nekonečnou smyčku.