SELFHTML/Aides à la navigation JavaScript/DOM Exemples d'application |
Traitement d'erreur avec le gestionnaire d'événement onError | |
L'étendue du langage JavaScript permet entre-temps la création d'applications au champ large. Les pages Web dynamiques contiennent, pour certaines, des scripts au large champ d'action qui accèdent à quantité de variables dans leur déroulement. C'est ainsi que des valeurs ou des états incontrôlés peuvent s'y glisser facilement lors du déroulement du programme, par exemple à cause d'une conduite imprévue de l'utilisateur. Depuis la version JavaScript 1.1, vous avez avec le gestionnaire d'événement onError
un outil à votre disposition pour intercepter les erreurs dans le script et y réagir de façon ciblée.
Pour empêcher les messages d'erreurs qui se créent dans l'exécution d'un script, notez dans l'entête du fichier window.onerror=
. Comme valeur, affectez le nom d'une fonction qui exécute le traitement de l'erreur. La valeur retournée par la fonction doit être true
. Ainsi, vous avez votre propre traitement d'erreur
Vous pouvez transmettre jusqu'à trois paramètres facultatifs à la fonction de traitement de l'erreur:
1. nouvelle: contient la description de l'erreur
2. fichier: contient l'URI du fichier occasionnant l'erreur
3. ligne: contient la ligne dans laquelle l'erreur survient
Cette façon de contrôler l'erreur peut être utilisée avec Netscape 4.x et l'Explorer Internet MS à partir de la version 4.x. Netscape 6 n'est malheureusement pas en mesure d'interpréter complètement les paramètres. Il sauvegarde à chaque fois dans le premier paramètre l'objet Event déclencheur. Opera 5.12 n'interprète pas le gestionnaire d'événement window.onError
lié à l'objet fenêtre.
Tenez compte que vous ne pouvez surveiller et empêcher que des erreurs logiques, qui apparaissent lors du déroulement du script. Les fautes de syntaxe, comme par exemple des guillemets manquants, ne peuvent être interceptées.
L'exemple montre une variante simple de traitement de l'erreur. À la fin du bloc JavaScript est appelée une fonction qui n'existe pas.
<html><head><title>Test</title> <script type="text/javascript"> <!-- window.onerror = mon_erreur; function mon_erreur(nouvelle,fichier,ligne) { erreur = "Message d'erreur:\n"+ nouvelle+"\n"+fichier+"\n"+ligne; affiche_erreur(); return true; } function affiche_erreur() { alert(window.erreur) } absente(); //--> </script> </head><body> <a href="javascript:affiche_erreur()">erreur</a><br> </body></html> |
À la lecture du fichier, l'instruction est donnée avec window.onerror = mon_erreur
, qu'en cas d'erreur, la fonction mon_erreur()
soit appelée. C'est ce qui arrive dans l'exemple à la fin du passage Script, quand la tentative est faite d'appeler la fonction absente()
qui n'existe pas.
La fonction sauvegarde avec l' opérateur pour relier les chaînes de caractères les paramètres transmis automatiquement dans la variable erreur
. Ensuite, elle appelle dans l'exemple la fonction affiche_erreur()
. Cette fonction sert en fin de compte dans l'exemple à sortir l'erreur pour la démonstration. Avec return true
il est obtenu que l'erreur ne soit pas affichée dans le navigateur. Avec la valeur retournée false
vous obtiendriez que le navigateur signale l'erreur.
Dans une application plus complexe, la fonction mon_erreur()
aurait donc toute latitude pour réagir à l'erreur. Elle pourrait par exemple rechercher dans la chaîne de caractères du paramètre transmis nouvelle
pour établir quelle erreur exactement est survenue. Selon la situation, une telle fonction pourrait faire en sorte que le Script fasse un saut en arrière dans son exécution, réinitialise des variables ou place le curseur dans un certain champ du formulaire etc...
Traitement d'erreur avec la commande try..catch | |
Liste de liens comme liste de choix | |
SELFHTML/Aides à la navigation JavaScript/DOM Exemples d'application |
© 2001 Stefan Münz / © 2003 Traduction Serge François, 13405@free.fr
selfhtml@fr.selfhtml.org