Оператор 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

Моля, подкрепете ни!