objektet Err [VBA]

Brug VBA-objektet Err til rejse eller håndtere afviklingsfejl.

Err er et indbygget VBA-globalt objekt, som tillader:

warning

Denne konstant, funktion eller objekt blev aktiveret med udtrykket Option VBASupport 1 placeret foran den del af modulets programkode, der kan udføres.


VBA-objektet Err har følgende egenskaber og metoder:

Egenskaber


         Err.Description As String
      

Egenskaben Description angiver fejlens natur. Description opregner de forskellige grunde, der kan udløse fejlen. Ideelt giver den flere fremgangsmåder som hjælp til løse problemmet og forebygge dets genopståen. Basic alias er funktionen Error for LibreOffice forfuddefinerede fejl.


         Err.Number As Long
      

Fejlkoden er knyttet til fejlen. Objektet Errs standardegenskab er Number. LibreOffice Basics alias er funktionen Err.


         Err.Source As String
      

Source viser navnet på den rutine, der giver fejlen Source er valgfri for bruger-definerede fejl.

Metoder


         Err.Clear()
      

Nulstiller den aktuelle fejls beskrivelse, Erl, nummer og kildeegenskaber. LibreOffice Basics alias er erklæringen Resume.


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

Kaster brugerdefinerede eller foruddefinerede fejl. LibreOffice Basics alias er erklæringen Error.

Parametre

Number: En brugerdefineret eller foruddefineret fejlkode, der sættes.

note

Fejlkode-området 0-2000 er reserveret til LibreOffice Basic. Brugerdefinerede fejl kan begynde med højere værdier, for at forebygge sammenstød med kommende LibreOffice Basic udvikling.


Source: Navnet på den rutine, der udløser fejlen. Der anbefales et navn på formen "myLibrary.myModule.myProc".

Description: En beskrivelse af problemet, der ledte til stop af den kørende proces, ledsaget af de forskellige udløsende grunde til det. En detaljeret liste over de mulige fremgangsmåder, der kan lette løsningen af problemet anbefales.

Eksempel:


         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:="Dette er en tilsigtet brugerdefineret fejl…"
             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
      

Undtagelsen ClassModule

tip

Et kort ClassModule, er foldet omkring VBA Err-objektet, kan distribuere Err egenskaber og metoder til standard LibreOffice Basic-moduler.



         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
      

Eksempel


         Function Exc As Object
             Exc = New Exception
         End Function
          
         Sub aRoutine
         try:
             On Local Error GoTo catch:
             Exc.Raise(4096, "myLib.myModule.aRoutine", _
                 "Enhver flerlinjet beskrivelse af denne brugerdefinerede undtagelse")
             ' din kode skrives her …
         finally:
             Exit Sub
         catch:
             errTitle = "Error "& Exc.Number &" at line "& Erl &" in "& Exc.Source
             MsgBox Exc.Description, MB_ICONSTOP, errTitle
             Resume finally
         End Sub
      
note

Udtrykket Error eller et undtagelseslignende klassemodul kan bruges i flæng, mens det sidste tilføjer ekstra funktionaliteter.


Støt os venligst!