Istruzione Resume

Reimposta le informazioni sull'errore e indica l'istruzione successiva da eseguire.

Sintassi:

Diagramma istruzione Resume

Resume [ [0] | label | Next ]

Parametri:

0: reimposta le informazioni sull'errore ed esegue nuovamente l'istruzione che ha causato l'errore. 0 è opzionale.

label: reimposta le informazioni sull'errore e riprende l'esecuzione dall'etichetta (label) specificata della subroutine corrente.

Next: reimposta le informazioni sull'errore ed esegue le istruzioni successive a quella che ha causato l'errore.

Le informazioni sull'errore vengono costruite con le funzioni Erl, Err e Error$.

tip

L'uso di Resume per reimpostare le informazioni sull'errore impedisce che la propagazione della condizione gestita richiami delle routine.


Codici di errore:

20 Resume senza errori

Esempi:

Tipiche routine di gestione dell'errore sono: avvertimento dell'utente, correzione dell'errore, registrazione delle informazioni dell'errore o rilancio di errori personalizzati che forniscano delle spiegazioni contenenti delle istruzioni per la risoluzione. Usate Resume label nei casi in cui sono necessari questi meccanismi.

Sub Error_Handling
try: On Error GoTo catch
    ' il codice della routine va inserito qui
    Error 91 ' esempio di errore
finally:
    ' il codice di pulizia della routine va inserito qui
    Exit Sub
catch:
    Print Erl, Err, Error$
    Resume finally
End Sub ' Error_Handling

Usate Resume Next, ad esempio, quando segnalate anomalie riscontrate in un processo di iterazione che non deve essere interrotto. Per gestire questi casi, possono essere necessarie diverse routine.

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

L'uso di Resume senza parametri per eseguire nuovamente l'istruzione fallace, può risolvere determinate situazioni. Questo però può portare a dei cicli infiniti.


Sosteneteci!