11.3 cgitb -- Gestore delle traceback per gli script CGI

Nuovo nella versione 2.2.

Il modulo cgitb fornisce un gestore di eccezioni speciale per gli script Python. (Il suo nome può causare confusione. Originariamente è stato progettato per mostrare informazioni estensive sulle traceback in HTML per gli script CGI. Successivamente è stato generalizzato per mostrare anche informazioni in puro testo.) Dopo che questo modulo è stato attivato, se interviene un'eccezione non gestita, verrà mostrato un report, dettagliato e formattato. Il report include una traceback contentente gli estratti del codice sorgente per ogni livello, quanto il valore degli argomenti e delle variabili locali delle funzioni correntemente in esecuzione, per aiutare alla risoluzione del problema. Facoltativamente si possono salvare queste informazioni in un file invece di inviarle al browser.

Per abilitare questa funzionalità, semplicemente si aggiunga una linea all'inizio dello script CGI:

import cgitb; cgitb.enable()

Le opzioni della funzione enable() controllano quando il report viene mostrato nel browser e quando il report viene registrato in un file per un'analisi successiva.

enable( [display[, logdir[, context[, format]]]])
Questa funzione fa sì che il modulo cgitb sovrascriva il gestore predefinito dell'interprete per le eccezioni, impostando il valore di sys.excepthook.

L'argomento facoltativo display viene impostato al valore predefinito 1 e può essere impostato a 0 per sopprimere l'invio delle traceback al browser. Se l'argomento logdir è presente, il rapporto della traceback viene scritto in un file. Il valore di logdir deve essere una directory dove questi file verranno posizionati. L'argomento facoltativo context è il numero di righe di contesto da mostrare intorno alla riga corrente del codice sorgente nella traceback; il suo valore predefinito è 5. Se l'argomento facoltativo format è "html", l'output viene formattato come HTML. Ogni altro valore forza il risultato in puro testo. Il valore predefinito è "html".

handler( [info])
Questa funzione gestisce un'eccezione usando le impostazioni predefinite (cioè, mostrare il report in un browser, ma non registrarle in un file). Ciò può essere usato quando è stata catturata un'eccezione e la si vuole nel report usando cgitb. L'argomento facoltativo info deve essere una tripla tupla contenente il tipo dell'eccezione, il valore dell'eccezione, e l'oggetto traceback, esattamente come la tupla restituita da sys.exc_info(). Se l'argomento info non viene fornito, l'eccezione corrente è ottenuta da sys.exc_info().
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.