Αντικείμενο Err VBA

Περιεχόμενα

# Αντικείμενο Err [VBA]

Χρησιμοποιήστε το αντικείμενο VBA Err για πρόκληση ή χειρισμό σφαλμάτων χρόνου εκτέλεσης.

Το Err είναι ενσωματωμένο καθολικό αντικείμενο VBA που επιτρέπει:

- την πρόκληση προκαθορισμένων σφαλμάτων Basic

- τη δημιουργία εξαιρέσεων του χρήστη

- την ονομασία της ρουτίνας που δημιουργεί το σφάλμα

- για περιγραφή του σφάλματος και πιθανών λύσεων

Αυτή η σταθερά, συνάρτηση ή αντικείμενο ενεργοποιείται με την πρόταση Option VBASupport 1 τοποθετημένη πριν τον κώδικα του εκτελέσιμου προγράμματος σε άρθρωμα.

Το αντικείμενο VBA Err έχει τις παρακάτω ιδιότητες και μεθόδους:

## Ιδιότητες

             Err.Description As String

Η ιδιότητα Description (περιγραφή) δίνει τη φύση του σφάλματος. Η Description δίνει λεπτομέρειες των διάφορων αιτίων που μπορεί να είναι η αιτία του σφάλματος. Ιδεατά, παρέχει την πολλαπλή διαδρομή των ενεργειών για να βοηθήσει στην επίλυση του προβλήματος και αποτρέπει την επανεμφάνισή του. Η παραλλαγή Basic είναι η συνάρτηση Error για τα προκαθορισμένα σφάλματα του LibreOffice.

             Err.Number As Long

Ο κωδικός σφάλματος σχετίστηκε με το σφάλμα. Η προεπιλεγμένη ιδιότητα ρου αντικειμένου Err είναι η Number (αριθμός). Η παραλλαγή Basic του LibreOffice είναι η συνάρτηση Err.

             Err.Source As String

Source (προέλευση) δείχνει το όνομα της ρουτίνας που παράγει το σφάλμα. Source είναι μια επιλογή για σφάλματα χρήστη.

## Μέθοδοι

             Err.Clear()

Επαναφέρει την περιγραφή, Erl, τον αριθμό και τις ιδιότητες πηγής του τρέχοντος σφάλματος. Η παραλλαγή Basic του LibreOffice είναι η πρόταση Resume.

             Err.Raise(Number As Long, Optional source As String, Optional description As String)

Εμφανίζει τα προκαθορισμένα σφάλματα από τον χρήστη. Η παραλλαγή Basic του LibreOffice είναι η πρόταση Error.

### Παράμετροι

Number: Ένας κωδικός σφάλματος του χρήστη ή προκαθορισμένος που θα ενεργοποιηθεί.

Η περιοχή κωδικών σφαλμάτων 0-2000 έχει κρατηθεί για το LibreOffice Basic. Τα σφάλματα του χρήστη μπορεί να ξεκινούν από υψηλότερες τιμές για να αποτρέψουν σύγκρουση με τις μελλοντικές αναπτύξεις του LibreOffice Basic.

Source: Το όνομα της ρουτίνας που ενεργοποιεί το σφάλμα. Συνιστάται ένα όνομα στη μορφή "myLibrary.myModule.myProc".

Description: Περιγραφή του προβλήματος που οδηγεί σε διακοπή της εκτελούμενης διεργασίας, που συνοδεύεται με τις διάφορες αιτίες που μπορεί να το προκάλεσαν. Συνιστάται ένας λεπτομερής κατάλογος της πιθανής πορείας των ενεργειών που μπορεί να βοηθήσει στην επίλυση του προβλήματος.

### Παράδειγμα:

             Option VBASupport 1

             Sub ThrowErrors
                 Dim aDesc As String : aDesc = Space(80)
                 On Local Error GoTo AlertAndExecNext
                 Err.Raise(91, "ThrowErrors", Error(91))
                 Err.Raise 2020, Description:="This is an intended user-defined error (Αυτό είναι ένα σκόπιμο σφάλμα του χρήστη)…"
                 Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
                 Exit Sub
             AlertAndExecNext:
                 errTitle = "Error "& Err &" at line "& Erl &" in "& Err.Source
                 MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
                 Resume Next
             End Sub

## Εξαίρεση ClassModule

Σύντομο ClassModule, που περιβάλλει αντικείμενο Err του VBA, μπορεί να κατανείμει ιδιότητες και μεθόδους Err για τυπικά αρθρώματα Basic του LibreOffice.

             Option ClassModule
             Option VBASupport 1

             Public Property Get Description As String
                 Description = Err.Description
             End Property
             Public Property Get Number As Long
                 Number = Err.Number
             End Property
             Public Property Get Source As String
                 Source = Err.Source
             End Property
             Public Sub Clear
                 Err.Clear
             End Sub
             Public Sub Raise( number As Long, Optional Source As String, Optional Description As String)
                 Err.Raise number, Source, Description
             End Sub

## Παράδειγμα

             Function Exc As Object
                 Exc = New Exception
             End Function

             Sub aRoutine
             try:
                 On Local Error GoTo catch:
                 Exc.Raise(4096, "myLib.myModule.aRoutine", _
                     "Οποιαδήποτε περιγραφή πολλών γραμμών για αυτήν την εξαίρεση του χρήστη")
                 ' ο κώδικάς σας πηγαίνει εδώ …
             finally:
                 Exit Sub
             catch:
                 errTitle = "Error "& Exc.Number &" at line "& Erl &" in "& Exc.Source
                 MsgBox Exc.Description, MB_ICONSTOP, errTitle
                 Resume finally
             End Sub

Η πρόταση Error ή άρθρωμα κλάσης παρόμοιο με εξαίρεση μπορεί να χρησιμοποιηθεί εναλλακτικά, ενώ το δεύτερο προσθέτει περισσότερα γνωρίσματα.

Σχετικά θέματα

Συναρτήσεις χειρισμού σφαλμάτων

Πρόταση επιλογής ClassModule

Πρόταση Option VBASupport

Υπηρεσία ScriptForge.Exception