LibreOffice 24.8:n ohje
Lause tekee mahdolliseksi virheen myöhemmin tapahtuessa virheenkäsittelyrutiiniin siirtymisen tai ohjelman jatkamisen.
On [Local] Error {GoTo Labelname | GoTo 0 | Resume Next}
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.
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