Comment connaitre le numéro de ligne où se produit une erreur ?Dans certains cas, localiser avec précision la source d'une erreur d'exécution dans une fonction peut s'avérer difficile. Il serait alors bien utile de connaître la ligne qui provoque l'erreur. Ceci n'est officiellement pas possible en VB... Et pourtant, il existe un moyen très simple qui utilise la fonction non documentée Erl(). Cette fonction renvoie le numéro de ligne (ou l'étiquette) de la ligne sur laquelle une erreur a été détectée. L'utilisation est très simple : commencer chaque ligne de la section de code à surveiller par une étiquette (l'usage est d'utiliser des nombres croissants numérotés de 10 en 10) puis utiliser la fonction Erl() dans la section de traitement d'erreur. ExemplePrivate Sub Dummy() Note : Après plus de 15 ans d'absence, Erl revient dans VB2005, comme propriété de l'objet Err. Un peu d'histoireLa fonction Erl() est une survivance des premiers Basic. Dans les premières versions de Basic, les lignes devaient obligatoirement commencer par un numéro de ligne. Ainsi, Erl() et Err() étaient utilisées pour le débuggage et Erl() affichait tout naturellement le numéro de ligne ou l'erreur avait été détectée. La fonction Erl() n'existe officiellement plus depuis Visual Basic 3; les développeurs de Microsoft ont cependant gardé cette fonction, sans toutefois la documenter. Voici pour l'exemple un vieux programme Basic : 10 REM UN VIEUX PROGRAMME BASIC Pour l'anecdote, il existe d'autres fonctions cachées dans VB : MacID, MacScript, VarPtr, ObjPtr et StrPtr. On peut faire apparaître ces fonctions en affichant l' Object Browser dans l'IDE (F2). Cliquer sur "Show Hidden Members" dans le menu contextuel du panneau principal, accessible par un clic droit. Les fonctions cachées apparaissent en grisé. Pour aller plus loin |
Date de publication : 11 septembre 2008 Dernière modification : 11 septembre 2008 Rubriques : Divers, Erreurs & problèmes Mots-clés : erreur, error, numéro, ligne, on error, err, erl |