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. Description 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 Basic est la fonction Error pour les erreurs prédéfinies de Collabora Office.

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. L'alias Collabora Office Basic est la fonction 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. L'alias Collabora Office Basic est l'instruction 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. L'alias Collabora Office Basic est l'instruction Error.

Paramètres

Number: 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 à Collabora Office 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 Collabora Office Basic.


Source: le 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:="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

Exception ClassModule

tip

Un courtClassModule, qui encapsule l'objet VBA Err, peut distribuer les propriétés et méthodes Err des modules Collabora Office 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 !