Πρόταση On Error GoTo ... Resume
Ενεργοποιεί μια ρουτίνα χειρισμού σφάλματος αφού παρουσιαστεί κάποιο σφάλμα ή επαναφέρει την εκτέλεση του προγράμματος.
Σύνταξη:
Σε {[Local] Error GoTo Labelname | GoTo 0 | Resume Next}
Παράμετροι:
GoTo Labelname: Αν παρουσιαστεί σφάλμα, ενεργοποιεί τη ρουτίνα χειρισμού σφάλματος η οποία αρχίζει στη γραμμή "Labelname".
Resume Next: Αν παρουσιαστεί σφάλμα, η εκτέλεση του προγράμματος συνεχίζεται με την πρόταση να ακολουθεί την πρόταση εκείνη στην οποία παρουσιάστηκε το σφάλμα.
Μετάβαση σε 0: Απενεργοποιεί το διαχειριστή σφαλμάτων στην τρέχουσα διαδικασία.
Τοπικό: "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,"Error"
End Sub