On Error GoTo ... Resume Statement

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

Syntaksi:

On Error Statement diagram


On [Local] Error {GoTo Labelname | 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:\Users\ThisUser\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 "All files will be closed",  0,  "Error"
End Sub

Please support us!