Bgerror

From Base de connaissances eggdrops & TCL
Jump to: navigation, search

bgerror - Commande appelée pour traiter les erreurs d'arrière-plan

Syntaxe

bgerror message

Description

La commande bgerror n'existe pas en tant que partie de Tcl. Par contre, les applications individuelles ou les utilisateurs peuvent définir une commande bgerror (ex. comme une fonction Tcl) s'ils souhaitent gérer les erreurs d'arrière-plan.

Une erreur d'arrière-plan est une erreur qui se produit dans un gestionnaire d'évènement ou une autre commande qui n'est pas produite par l'application. Par exemple, si une erreur se produit pendant l'exécution d'une commande spécifiée avec la commande after, alors c'est une erreur d'arrière-plan. Pour une erreur qui n'est pas d'arrière-plan, l'erreur peut simplement être remontée par les évaluations de commandes imbriquées Tcl jusqu'à ce qu'elle atteigne le code de premier plan dans l'application; alors l'application peut rapporter l'erreur de la manière souhaitée. Quand une erreur d'arrière-plan se produit, le déroulement s'achève dans la bibliothèque Tcl et il n'y a pas de moyen precis pour Tcl de rapporter l'erreur.

Quand Tcl detecte une erreur d'arrière-plan, il sauvegarde l'information relative à l'erreur et appelle la commande bgerror plus tard comme un gestionnaire d'évènement inactif. Avant d'appeler bgerror, Tcl restaure les variables errorInfo et errorCode aux valeurs en cours à l'instant ou l'erreur s'est produite, et appelle bgerror avec le message d'erreur comme seul argument. Tcl suppose que l'application a implémenté la commande bgerror, et que la commande rapporte l'erreur d'une manière sensée pour l'application. Tcl ignore tout résultat renvoyé par le commande bgerror tant qu'aucune erreur n'est générée.

Si une autre erreur Tcl se produit à l'intérieur de la commande bgerror (par exemple, parcequ'aucune commande bgerror n'a été définie) alors Tcl rapporte l'erreur lui-même en écrivant un message sur la sortie standard.

Si plusieurs erreurs d'arrière-plan s'accumulent avant que bgerror soit appelée pour les traiter, bgerror sera appelée une fois pour chaque erreur, dans l'ordre ou elles se sont produites. Néanmoins, si bgerror retourne avec une exception break, alors toute les erreurs restantes seront ignorées sans appeller bgerror.

Tcl n'a pas d'implémentation par défaut de bgerror. Néanmoins, dans une application utilisant Tk il y a une fonction bgerror par défaut qui affiche une boite de dialogue contenant le message d'erreur et offre à l'utilisateur la possibilité de visualiser la trace de la pile montrant où l'erreur s'est produite.