Příkaz Resume

Vymaže informaci o chybě a určí, co se má spustit jako další.

Syntaxe:

Diagram příkazu Resume

Resume [ [0] | label | Next ]

Parametry:

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$.

tip

Vymazání informace o chybě pomocí Resume zabrání tomu, aby se ošetřovaná podmínka propagovala do procedur, které ji zavolaly.


Chybové kódy:

20 Pokračovat bez chyb

Příklady:

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
warning

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.


Podpořte nás!