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:
traceback[, limit[, file]]) |
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.
type, value, traceback[, limit[, file]]) |
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.
[limit[, file]]) |
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.)
[limite[, file]]) |
print_exc(limit)
ma restituisce
una stringa invece che stampare su un file.
Nuovo nella versione 2.4.
[limite[, file]]) |
print_exception(sys.last_type,
sys.last_value, sys.last_traceback, limit, file)
.
[f[, limit[, file]]]) |
traceback[, limit]) |
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
.
[f[, limit]]) |
list) |
None
.
type, value) |
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.
type, value, tb[, limit]) |
tb[, limit]) |
format_list(extract_tb(tb, limit))
.
[f[, limit]]) |
format_list(extract_stack(f, limit))
.
tb) |
tb.tb_lineno
. Questa funzione non viene
utilizzata nelle versioni successive a 2.3.