20.3. "cgitb" — Gestionnaire d’exceptions pour les scripts CGI
**************************************************************

Nouveau dans la version 2.2.

Le module "cgitb" fournit un gestionnaire d’exceptions spécifique pour
les scripts Python. (Son nom est trompeur : Il a été conçu à l’origine
pour afficher des pile d’appels en HTML pour les scripts CGI, puis a
été généralisé par la suite pour afficher cette information en texte
brut.) Une fois ce module activé, si une exception remonte jusqu’à
l’interpréteur, un rapport détaillé sera affiché. Le rapport affiche
la pile d’appels, montrant des extraits de code pour chaque niveau,
ainsi que les arguments et les variables locales des fonctions
appelantes pour vous aider à résoudre le problème. Il est aussi
possible de sauvegarder cette information dans un fichier plutôt que
de l’envoyer dans le navigateur.

Pour activer cette fonctionnalité, ajoutez simplement ceci au début de
votre script CGI :

   import cgitb
   cgitb.enable()

Les paramètres optionnels de la fonction "enable()" permettent de
choisir si le rapport est envoyé au navigateur ou si le rapport est
écrit dans un fichier pour analyse ultérieure.

cgitb.enable([display[, logdir[, context[, format]]]])

   Appeler cette fonction remplace le gestionnaire d’exceptions par
   défaut de l’interpréteur par celui du module "cgitb", en
   configurant "sys.excepthook".

   Le paramètre optionnel *display* vaut "1" par défaut, et peut être
   mis à "0" pour désactiver l’envoi des piles d’appels au navigateur.
   Si l’argument *logdir* est donné les piles d’appels seront écrites
   dans des fichiers placés dans le dossier *logdir*. L’argument
   optionnel *context* est le nombre de lignes de code à afficher
   autour de la ligne courante dans le code source à chaque niveau de
   la pile d’appel, il vaut "5" par défaut. Si l’argument optionnel
   *format* est ""html"", le rapport sera rédigé en HTML. Le rapport
   sera écrit en texte brut pour toute autre valeur.  La valeur par
   défaut est ""html"".

cgitb.handler([info])

   Cette fonction gère les exceptions en utilisant la configuration
   par défaut (c’est à dire envoyer un rapport HTML au navigateur sans
   l’enregistrer dans un fichier). Il peut être utilisé lorsque vous
   avez attrapé une exception et que vous en voulez un rapport généré
   par "cgitb". L’argument optionnel *info* doit être un *tuple* de
   trois éléments contenant le type de l’exception, l’exception, et la
   pile d’appels, tel que le *tuple* renvoyé par "sys.exc_info()". Si
   l’argument *info* n’est pas donné, l’exception courante est obtenue
   via "sys.exc_info()".
