On Error GoTo ... Resume Statement

Lubab veahalduse alamprotseduuri käivitamise pärast vea ilmnemist või jätkab programmi täitmist.

Süntaks:

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

Parameetrid:

GoTo Labelname: lubab vea ilmnemisel veahalduse alamprotseduuri, mis käivitatakse real "Labelname".

Resume Next: vea korral jätkatakse programmi käitamist lausega, mis järgneb lausele, kus viga ilmnes.

GoTo 0: keelab veahalduse aktiivses protseduuris.

Local: "On error" on ulatuselt globaalne ja jääb aktiivseks kuni järgmine lause "On error" selle tühistab. "On Local error" on kohalik ja seotud alamprotseduurist, mis selle käivitab. Kohalik veahaldus alistab kõik varasemad globaalsed sätted. Käivitatud alamprotseduuri sulgumisel tühistatakse kohalik veahaldus automaatselt ja varasemad globaalsed sätted taastatakse.

Lauset On Error GoTo kasutatakse makrodes esinevatele vigadele reageerimiseks.

Näide:

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, "See on rida teksti"

    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 "Kõik failid suletakse",0,"Viga"

End Sub