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

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

Синтаксис:

Диаграма на оператора On Error


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

Параметри:

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

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

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

Local: незадължителна. Ключовата дума напомня, че операторът е локален за подпрограмата, в която е използван; когато тя завърши, тази обработка на грешки автоматично се отменя.

Пример:


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

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