Predmet Err [VBA]

Uporabite predmet VBA Err za javljanje oz. ravnanje z napakami pri izvajanju.

Err je vgrajeni globalni predmet VBA, ki omogoča:

warning

To konstanto, funkcijo ali predmet omogočimo z ukazom Option VBASupport 1, ki ga moramo vstaviti pred izvedljivo programsko kodo v modulu.


Predmet VBA Err ima naslednje lastnosti in metode:

Lastnosti

Err.Description As String

Lastnost Description podaja naravo napake. Description podrobno oriše različne razloge, ki bi lahko povzročili napako. Idealno ponuja več možnih ukrepov, ki lahko pomagajo razrešiti težavo in preprečiti njeno ponovno pojavljanje. Njen ekvivalent v Basicu je funkcija Error za vnaprej določene napake Collabora Office.

Err.Number As Long

Koda napake, povezana z napako. Privzeta lastnost predmeta Err je Number. Ekvivalent v Collabora Office Basic je funkcija Err.

Err.Source As String

Source nakazuje ime rutine, ki povzroča napako. Source pride v poštev pri uporabniško določenih napakah.

Metode

Err.Clear()

Ponastavi opis, Erl, številko in vir trenutne napake. Ekvivalent v Collabora Office Basic je ukaz Resume.

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

Javi uporabniško določene napake ali vnaprej določene napake. Ekvivalent v Collabora Office Basic je ukaz Error.

Parametri

Število: uporabniško določena ali vnaprej določena koda napake, ki bo javljena.

note

Kode napake med 0 in 2000 so rezervirane za Collabora Office Basic. Uporabniško določene napake se lahko začnejo z višjimi vrednostmi, da se preprečijo spori z bodočim razvojem Collabora Office Basic.


Vir: ime rutine, ki javlja napako. Priporočeno je ime v obliki »mojaKnjižnica.mojModul.mojaProc«.

Opis: opis problema, ki pripelje do ustavitve tekočega procesa, ki ga spremljajo različni razlogi, ki bi lahko to povzročili. Priporočen je podroben niz možnih dejanj, ki lahko pomagajo odpraviti težavo.

Primer:

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:="To je načrtovana, uporabniško določena napaka ..."
    Err.Raise(4096, "Standard.Module1.ThrowErrors", aDesc)
    Exit Sub
AlertAndExecNext:
    errTitle = "Napaka "& Err &" v vrstici "& Erl &" v "& Err.Source
    MsgBox Err.Description, MB_ICONEXCLAMATION, errTitle
    Resume Next
End Sub

Izjema ClassModule

tip

Kratek razredni modul ClassModule, ki zaobjame predmet VBA Err, lahko razširja lastnosti in metode Err za standardne module Collabora Office Basic.


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

Primer

Function Exc As Object
    Exc = New Exception
End Function

Sub aRoutine
try:
    On Local Error GoTo catch:
    Exc.Raise(4096, "myLib.myModule.aRoutine", _
        "Večvrstični opis te uporabniško določene izjeme")
    ' vaša koda sodi sem ...
finally:
    Exit Sub
catch:
    errTitle = "Napaka "& Exc.Number &" v vrstici "& Erl &" v "& Exc.Source
    MsgBox Exc.Description, MB_ICONSTOP, errTitle
    Resume finally
End Sub
note

Ukaz Error ali razredni modul, podoben Exception, lahko uporabite na enak način, pri čemer slednji prinaša dodatne funkcionalnosti.


Podprite nas!