Error |
Erreur |
Visual Basic .NET (VB .NET) |
Syntaxe
On Error { GoTo [ line | 0 | -1 ] | Resume Next }
|
Paramètres
Nom |
Description |
GoTo line |
Ce paramètre permet d'activer la routine de gestion des erreurs démarrant à la ligne spécifiée dans le paramètre de ligne requis. Le paramètre de ligne est n'importe quelle étiquette de ligne ou numéro de ligne. Si une erreur d'exécution se produit, le contrôle se branche sur la ligne spécifiée, rendant le gestionnaire d'erreurs actif. La ligne spécifiée doit être dans la même procédure que l'instruction On Error ou une erreur de compilation se produira. |
GoTo 0 |
Ce paramètre permet de désactiver le gestionnaire d'erreurs activé dans la procédure en cours et le réinitialise sur Nothing. |
GoTo -1 |
Ce paramètre permet de désactiver l'exception activée dans la procédure en cours et la réinitialise sur Nothing. |
Resume Next |
Ce paramètre permet d'indiquer que lorsqu'une erreur d'exécution se produit, le contrôle passe à l'instruction suivant immédiatement l'instruction où l'erreur s'est produite et l'exécution se poursuit à partir de ce point. Utilisez ce formulaire plutôt que On Error GoTo lors de l'accès aux objets. |
Description
Ce mot réservé permet d'activer une routine de gestion des erreurs et spécifie l'emplacement de la routine dans une procédure ; peut également être utilisé pour désactiver une routine de gestion des erreurs.
Remarques
- Le mot réservé Error active une routine de gestion des erreurs et spécifie l'emplacement de la routine dans une procédure ; peut également être utilisé pour désactiver une routine de gestion
des erreurs. L'instruction On Error est utilisée dans la gestion des erreurs non structurée et peut être utilisée à la place de la gestion structurée des exceptions. La gestion structurée des
exceptions est intégrée à .NET, est généralement plus efficace et est donc recommandée lors de la gestion des erreurs d'exécution dans votre application.
- Sans gestion des erreurs ou des exceptions, toute erreur d'exécution se produisant est fatale : un message d'erreur s'affiche et l'exécution s'arrête.
- Le mot clef Error est également utilisé dans la déclaration Error, étant prise en charge pour la compatibilité descendante.
- Il est recommandé d'utiliser la gestion des exceptions structurée dans votre code dans la mesure du possible, plutôt que d'utiliser la gestion des exceptions non structurée et l'instruction
On Error.
- Un gestionnaire d'erreurs «activé» est celui étant activé par une instruction On Error. Un gestionnaire d'erreurs «actif» est un gestionnaire activé étant en train de gérer une erreur.
- Si une erreur se produit alors qu'un gestionnaire d'erreurs est actif (entre l'occurrence de l'erreur et une instruction Resume, Exit Sub, Exit Function ou Exit Property), le
gestionnaire d'erreurs de la procédure en cours ne peut pas gérer l'erreur. Le contrôle revient à la procédure appelante.
- Si la procédure appelante a un gestionnaire d'erreurs activé, il est activé pour gérer l'erreur. Si le gestionnaire d'erreurs de la procédure appelante est également actif, le contrôle repasse
par les procédures appelantes précédentes jusqu'à ce qu'un gestionnaire d'erreurs activé mais inactif soit trouvé. Si aucun gestionnaire d'erreurs de ce type n'est trouvé, l'erreur est fatale au point où elle
s'est réellement produite.
- Chaque fois que le gestionnaire d'erreurs redonne le contrôle à une procédure appelante, cette procédure devient la procédure en cours. Une fois qu'une erreur est gérée par un gestionnaire d'erreurs
dans une procédure, l'exécution reprend dans la procédure en cours au point désigné par l'instruction Resume.
- Une routine de gestion des erreurs n'est pas une procédure Sub ou une procédure Function. Il s'agit d'une section de code marquée par une étiquette de
ligne ou un numéro de ligne.
- Propriété de nombre : Les routines de gestion des erreurs s'appuient sur la valeur de la propriété Number de l'objet Err pour déterminer la cause de l'erreur. La routine doit
tester ou enregistrer les valeurs de propriété pertinentes dans l'objet Err avant qu'une autre erreur ne se produise ou avant qu'une procédure susceptible de provoquer une erreur ne soit appelée.
Les valeurs de propriété dans l'objet Err reflètent uniquement l'erreur la plus récente. Le message d'erreur associé à Err.Number est contenu dans Err.Description.
- Instruction Throw : Une erreur étant déclenchée avec la méthode Err.Raise définit la propriété Exception sur une instance nouvellement créée de la classe
Exception. Afin de prendre en charge la levée d'exceptions de types d'exception dérivés, une instruction Throw est prise en charge dans le langage de programmation.
Cela prend un seul paramètre étant l'instance d'exception à lever.
- On Error Resume Next : Le On Error Resume Next entraîne la poursuite de l'exécution avec l'instruction suivant immédiatement l'instruction ayant provoqué l'erreur d'exécution, ou
avec l'instruction suivant immédiatement l'appel le plus récent de la procédure contenant l'instruction On Error Resume Next. Cette instruction permet à l'exécution de continuer malgré une erreur
d'exécution. Vous pouvez placer la routine de gestion des erreurs là où l'erreur se produirait plutôt que de transférer le contrôle à un autre emplacement dans la procédure. Une instruction
On Error Resume Next devient inactive lorsqu'une autre procédure est appelée, vous devez donc exécuter une instruction On Error Resume Next dans chaque routine appelée si vous souhaitez
gérer les erreurs en ligne dans cette routine. La construction On Error Resume Next peut être préférable à On Error GoTo lors de la gestion des erreurs générées lors de l'accès à d'autres
objets. Vérifier Err après chaque interaction avec un objet supprime l'ambiguïté sur l'objet auquel le code a accédé. Vous pouvez être sûr de l'objet qui a placé le code d'erreur dans
Err.Number, ainsi que de l'objet ayant généré l'erreur à l'origine (l'objet spécifié dans Err.Source).
- On Error GoTo 0 : Le On Error GoTo 0 désactive la gestion des erreurs dans la procédure en cours. Il ne spécifie pas la ligne 0 comme début du code de gestion des erreurs, même
si la procédure contient une ligne numérotée 0. Sans instruction On Error GoTo 0, un gestionnaire d'erreurs est automatiquement désactivé lorsqu'une procédure est fermée.
- On Error GoTo -1 : Le On Error GoTo -1 désactive l'exception dans la procédure en cours. Il ne spécifie pas la ligne -1 comme début du code de gestion des erreurs, même si la
procédure contient une ligne numérotée -1. Sans instruction On Error GoTo -1, une exception est automatiquement désactivée lorsqu'une procédure est terminée.
- Erreurs non piégées : Les erreurs non interceptées dans les objets sont renvoyées à l'application de contrôle lorsque l'objet s'exécute en tant que fichier exécutable. Dans l'environnement
de développement, les erreurs non interceptées sont renvoyées à l'application de contrôle uniquement si les options appropriées sont définies. Si vous créez un objet qui accède à d'autres objets, vous
devez essayer de gérer les erreurs non gérées qu'ils renvoient. Si vous ne pouvez pas, cartographiez les codes d'erreur dans Err.Number à l'une de vos propres erreurs, puis retransmettez-les à
l'appelant de votre objet. Vous devez spécifier votre erreur en ajoutant votre code d'erreur à la constante VbObjectError.
- Les erreurs système lors d'appels aux bibliothèques de liens dynamiques (DLL) Windows ne déclenchent pas d'exceptions et ne peuvent pas être interceptées avec l'interception d'erreurs
Visual Basic .NET. Lors de l'appel de fonctions DLL, vous devez vérifier la réussite ou l'échec de chaque valeur de retour (selon les spécifications de l'API) et, en cas d'échec, vérifier
la valeur dans la propriété LastDLLError de l'objet Err.
Dernière mise à jour : Mardi, le 24 Août 2021