Objet Err [VBA]

Utilisez l'objet Err VBA pour déclencher ou gérer les erreurs d'exécution.

Err est un objet global VBA intégré qui permet :

warning

Cette constante, fonction ou objet est activé avec l'instruction Option VBASupport 1 placée avant le code exécutable dans un module.


L'objet VBA Err a les propriétés et méthodes suivantes :

Propriétés


         Err.Description As String
      

La propriété Description donne la nature de l'erreur. Elle détaille les différentes raisons pouvant provoquer l'erreur. Idéalement, elle fournit les multiples actions visant à résoudre le problème et empêcher sa réapparition. Son alias est Erreur pour les erreurs prédéfinies de LibreOffice.


         Err.Number As Long
      

C'est le code d'erreur associé à l'erreur. La propriété par défaut de l'objet Err est Number. Son alias est LibreOffice Basic Err.


         Err.Source As String
      

Source indique le nom de la routine qui produit cette erreur. Source est une option pour les erreurs définies par l'utilisateur.

MĂ©thodes


         Err.Clear()
      

Réinitialise la descriptions, les propriétés Erl, de nombre et de la source de l'erreur active. Son alias est l'instruction LibreOffice Basic Resume.


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

Lance des erreurs définies par l'utilisateur ou des erreurs prédéfinies. Son alias est l'instruction LibreOffice Basic Erreur.

Paramètres

Nombre un code d'erreur pré-défini ou défini par l'utilisateur à élever.

note

La plage de codes d'erreur 0-2000 est réservée à LibreOffice Basic. Les erreurs définies par l'utilisateur peuvent commencer à partir de valeurs plus élevées afin d'éviter une collision avec les développements futurs de LibreOffice Basic.


Source nom de la routine provoquant l'erreur. Un nom sous la forme de "myLibrary.myModule.myProc" est recommandé.

Description une description du problème entraînant l'arrêt du processus en cours, accompagnée des différentes raisons qui peuvent le provoquer. Une liste détaillée des actions possibles pouvant aider à résoudre le problème est recommandée.

Exemple :


         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:="Il s'agit d'une erreur intentionnelle définie par l'utilisateur …"
             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
      

Exception ClassModule

tip

Un courtClassModule, qui encapsule l'objet VBA Err, peut distribuer les propriétés et méthodes Err des modules LibreOffice Basic standards.



         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
      

Exemple


         Function Exc As Object
             Exc = New Exception
         End Function
          
         Sub aRoutine
         try:
             On Local Error GoTo catch:
             Exc.Raise(4096, "myLib.myModule.aRoutine", _
                 "Toute description sur plusieurs lignes pour cette exception définie par l'utilisateur")
             ' votre code ici…
         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

L'instruction Error ou un module de classe de type Exception peut être utilisé de manière interchangeable, tandis que ce dernier ajoute des fonctionnalités supplémentaires.


Aidez-nous !