Istruzione On Error GoTo ... Resume

Quando si verifica un errore, abilita una routine di gestione degli errori oppure riprende l'esecuzione del programma.

Sintassi:

On {[Local] Error GoTo Labelname | GoTo 0 | Resume Next}

Parametri:

GoTo Labelname (Nomeetichetta): se si verifica un errore, abilita la routine di gestione degli errori che inizia alla riga "Labelname".

Resume Next: se si verifica un errore, l'esecuzione del programma continua con l'istruzione successiva a quella in cui si è verificato l'errore.

GoTo 0: disabilita la routine di gestione degli errori nella procedura in corso.

Local: "On error" ha portata globale e rimane attivo fino a che non viene cancellato da un'altra dichiarazione "On error". "On Local error" è locale rispetto alla routine che lo invoca. La routine di gestione degli errori prevale su ogni altra impostazione globale. Quando la routine che la invoca termina, la gestione degli errori locale viene cancellata automaticamente e vengono ripristinate le precedenti impostazioni globali.

L'istruzione On Error GoTo viene usata per reagire agli errori che si verificano in una macro.

Esempio:

Sub ExampleReset

On Error GoTo ErrorHandler

Dim iNumber As Integer

Dim iCount As Integer

Dim sLine As String

Dim aFile As String

    aFile = "c:\data.txt"

    iNumber = Freefile

    Open aFile For Output As #iNumber

    Print #iNumber, "Questa è una riga di testo"

    Close #iNumber

    iNumber = Freefile

    Open aFile For Input As iNumber

    For iCount = 1 To 5

        Line Input #iNumber, sLine

        If sLine <>"" Then

            Rem

        End If

    Next iCount

    Close #iNumber

    Exit Sub

ErrorHandler:

    Reset

    MsgBox "Tutti i file verranno chiusi",0,"Errore"

End Sub