On Error GoTo ... Resume Statement

Lause tekee mahdolliseksi virheen myöhemmin tapahtuessa virheenkäsittelyrutiiniin siirtymisen tai ohjelman jatkamisen.

Syntaksi:

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

Parametrit:

GoTo Rivitunnus1: jos virhe tapahtuu, on mahdollista siirtyä virheenkäsittelyn aliohjelmaan, joka alkaa riviltä "Rivitunnus1".

Resume Next: jos virhe tapahtuu, ohjelman suoritusta jatketaan virheen tapahtumislausetta seuraavasta lauseesta.

GoTo 0: virheenkäsittelijä ei ole toiminnassa kyseisessä proseduurissa.

Local: "On error" on kattavuudeltaan globaali ja säilyy aktiivisena, kunnes se korvautuu toisella "On error" -lauseella. "On Local error" on kutsuvaan rutiiniin rajoittuva. Lokaali virheenkäsittely saa etusijan aiempiin globaaleihin asetuksiin nähden. Kun kutsuneesta rutiinista poistutaan, lokaali virheenkäsittely lakkaa automaattisesti ja aiempin globaali asetus palautetaan, jos sellainen esiintyy.

On Error GoTo -lausetta käytetään vastamaan makrossa tapahtuneisiin virheisiin.

Esimerkki:

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, "Tämä on tekstirivi."

    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 "Kaikki tiedostot suljetaan",0,"Virhe"

End Sub