Obsah
Rejstřík 🔎︎

# Příkaz Resume

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

### Syntaxe:

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

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

### 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

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.