Оператор On Error GoTo ... Resume

Служи за задаване на подпрограма за обработка на грешки и продължаване на изпълнението на програмата.

Синтаксис:

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

Параметри:

GoTo Labelname: ако възникне грешка, управлението ще бъде предадено на подпрограмата за обработка на грешки, започваща от ред Labelname.

Resume Next: ако възникне грешка, изпълнението на програмата продължава от реда след оператора, в който е възникнала грешката.

GoTo 0: забранява обработката на грешки в текущата процедура.

Local: Операторът „On error“ има глобален обхват и остава активен, докато не бъде отменен от друг оператор „On error“. „On Local error“ е локален за подпрограмата, в която е използван. Локалната обработка на грешки има предимство пред всякаква зададена преди това глобална настройка. При изход от подпрограмата локалната обработка на грешки се отменя автоматично и се възстановява предишната глобална настройка, ако има такава.

Операторът On Error GoTo служи за обработка на грешките, които възникват в даден макрос.

Пример:

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, "Това е ред с текст"

    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 "Всички файлове ще бъдат затворени", 0, "Грешка"

End Sub