Guida di Collabora Office 24.04
Reimposta le informazioni sull'errore e indica l'istruzione successiva da eseguire.
Resume [ [0] | label | Next ]
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$.
Erl: riga del modulo nella quale si verifica l'errore.
Err: codice numerico dell'errore.
Error[$]: descrizione dell'errore.
L'uso di Resume per reimpostare le informazioni sull'errore impedisce che la propagazione della condizione gestita richiami delle routine.
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
L'uso di Resume senza parametri per eseguire nuovamente l'istruzione fallace, può risolvere determinate situazioni. Questo però può portare a dei cicli infiniti.