3.12 traceback -- Stampa o recupera la traccia dello stack

Questo modulo fornisce un'interfaccia standard per estrarre, formattare e stampare tracce dello stack di programmi Python. Il modulo ripete esattamente il comportamento dell'interprete di Python quando stampa una traccia dello stack. Questo risulta utile quando si vuole stampare tracce dello stack sotto il controllo del programma, come in un ``wrapper'' (NdT: involucro) attorno all'interprete.

Il modulo usa oggetti traceback -- questo è il tipo di oggetto che viene immagazzinato nelle variabili sys.exc_traceback (deprecato) e sys.last_traceback, e restituito come terzo elemento da sys.exc_info().

Il modulo definisce le funzioni seguenti:

print_tb( traceback[, limit[, file]])
Stampa gli elementi della traccia dello stack fino a limit, a partire da traceback. Se limit viene omesso o è None, vengono stampati tutti gli elementi. Se file viene omesso o è None, l'output viene stampato su sys.stderr; altrimenti a ricevere l'output devono essere un file aperto o un oggetto file.

print_exception( type, value, traceback[, limit[, file]])
Stampa le informazioni della traccia dello stack relative all'eccezione, fino a limit da traceback a file. Differisce da print_tb() nei modi seguenti: (1) se traceback non è None, stampa la parte iniziale (header) "Traceback (most recent call last):"; (2) stampa il type di eccezione ed il valore dopo la traccia dello stack; (3) se il type è SyntaxError ed il value ha il formato appropriato, stampa la riga dove si è verificato l'errore di sintassi, con un carattere indicatore "^", segnalante la posizione approssimativa dell'errore.

print_exc( [limit[, file]])
Questa è una scorciatoia per print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback, limit, file). (Infatti, usa sys.exc_info() per recuperare le stesse informazioni in modalità threadsafe (NdT: di sicuro utilizzo con i thread) invece di usare le variabili deprecate.)

format_exc( [limite[, file]])
Questa funzione è simile a print_exc(limit) ma restituisce una stringa invece che stampare su un file. Nuovo nella versione 2.4.

print_last( [limite[, file]])
Questa è una scorciatoia per print_exception(sys.last_type, sys.last_value, sys.last_traceback, limit, file).

print_stack( [f[, limit[, file]]])
Questa funzione stampa una traccia dello stack dal punto in cui viene chiamata. L'argomento facoltativo f può venire usato per specificare un frame alternativo dello stack da cui partire. Gli argomenti facoltativi limit e file hanno lo stesso significato che in print_exception().

extract_tb( traceback[, limit])
Restituisce una lista, fino a limit, di elementi ``pre elaborati'' della traccia dello stack, estratti dall'oggetto traceback passato alla funzione. È utile per formattare diversamente le tracce dello stack. Se il limit viene omesso o è None, tutti gli elementi vengono estratti. Un elemento ``pre elaborato'' della traccia dello stack è una tupla di 4 elementi (nomefile, numero di riga, nome funzione, testo) che rappresenta tutte le informazioni che solitamente vengono stampate nella traccia dello stack. Il testo è una stringa con gli spazi vuoti iniziali e di coda rimossi; se il sorgente non è disponibile, la stringa è None.

extract_stack( [f[, limit]])
Estrae una traccia raw dal frame dello stack corrente. Il valore restituito ha lo stesso formato di quello per extract_tb(). Gli argomenti facoltativi f e limit hanno lo stesso significato di quelli utilizzati per print_stack().

format_list( list)
Allo stesso modo di come extract_tb() o extract_stack() restituiscono una lista di tuple, questo comando restituisce una lista di stringhe pronte per la stampa. Ogni stringa, nella lista risultante, corrisponde all'elemento con lo stesso indice nella lista degli argomenti. Ogni stringa termina con un fine riga; le stringhe possono contenere internamente dei fine riga, per quegli elementi la cui riga di testo sorgente non è uguale a None.

format_exception_only( type, value)
Formatta la parte relativa all'eccezione di una traceback. Gli argomenti sono il tipo di eccezione ed il valore così come viene restituito da sys.last_type e sys.last_value. Il valore restituito è una lista di stringhe, ognuna terminante con un fine riga. Normalmente la lista contiene una singola stringa; comunque, per le eccezioni SyntaxError, il valore restituito contiene più linee, che (quando stampate) visualizzano informazioni dettagliate riguardanti il punto si è verificato l'errore sintattico. Il messaggio indicante il tipo di eccezione è sempre l'ultima stringa della lista.

format_exception( type, value, tb[, limit])
Formatta la traccia dello stack e l'informazione sull'eccezione. Gli argomenti hanno lo stesso significato di corrispondenti della funzione print_exception(). Il valore restituito è una lista di stringhe ciascuna terminante con un fine riga, alcune contenenti a loro volta dei fine riga interni. Quando queste linee vengono concatenate e stampate, il risultato è lo stesso di quello di print_exception().

format_tb( tb[, limit])
Una scorciatoia per format_list(extract_tb(tb, limit)).

format_stack( [f[, limit]])
Una scorciatoia per format_list(extract_stack(f, limit)).

tb_lineno( tb)
Questa funzione restituisce l'insieme dei numeri di riga correnti nell'oggetto traceback. Si è resa necessaria in quanto in versioni precedenti a Python 2.3, quando veniva passato l'argomento -O a Python, non veniva aggiornato correttamente tb.tb_lineno. Questa funzione non viene utilizzata nelle versioni successive a 2.3.



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.