21.3. cgitb
— Gerenciador de traceback (situação da pilha de execução) para roteiros de CGI¶
Código Fonte: Lib/cgitb.py
O módulo cgitb
fornece um tratador de exceção especial para scripts Python. (Seu nome é um pouco enganador. Ele foi originalmente projetado para exibir informações abrangentes de rastreamento em HTML para scripts CGI. Posteriormente, foi generalizado também para exibir essas informações em texto sem formatação.) Após esse módulo ser ativado, se ocorrer uma exceção não detectada, um relatório detalhado e formatado será exibido. O relatório inclui um traceback mostrando trechos do código-fonte para cada nível, bem como os valores dos argumentos e variáveis locais das funções atualmente em execução, para ajudá-lo a depurar o problema. Opcionalmente, você pode salvar essas informações em um arquivo em vez de enviá-las para o navegador.
Para habilitar esse recurso, basta adicioná-lo ao topo do seu script CGI:
import cgitb
cgitb.enable()
As opções da função enable()
controlam se o relatório é exibido no navegador e se o relatório é registrado em um arquivo para análise posterior.
-
cgitb.
enable
(display=1, logdir=None, context=5, format="html")¶ Esta função faz com que o módulo
cgitb
assumir o tratamento padrão do interpretador para exceções definindo o valor desys.excepthook
.O argumento opcional display é padronizado como
1
e pode ser definido como0
para suprimir o envio do traceback ao navegador. Se o argumento logdir estiver presente, os relatórios de traceback serão gravados nos arquivos. O valor de logdir deve ser um diretório em que esses arquivos serão colocados. O argumento opcional context é o número de linhas de contexto a serem exibidas em torno da linha atual do código-fonte no traceback; o padrão é5
. Se o argumento opcional format for"html"
, a saída será formatada como HTML. Qualquer outro valor força a saída de texto sem formatação. O valor padrão é"html"
.
-
cgitb.
handler
(info=None)¶ Essa função trata uma exceção usando as configurações padrão (ou seja, mostra um relatório no navegador, mas não faz logon em um arquivo). Isso pode ser usado quando você capturou uma exceção e deseja denunciá-la usando
cgitb
. O argumento opcional info deve ser uma tupla de três, contendo um tipo de exceção, um valor de exceção e um objeto de traceback exatamente como a tupla retornada porsys.exc_info()
. Se o argumento info não for fornecido, a exceção atual será obtida emsys.exc_info()
.