Quando si verifica un'eccezione in Python, è possibile ispezionare lo stack? Puoi determinarne la profondità? Ho esaminato il modulo traceback, ma non riesco a capire come usarlo.Come si può controllare a livello di codice la traccia dello stack di un'eccezione in Python?
Il mio obiettivo è rilevare eventuali eccezioni che si verificano durante l'analisi di un'espressione di eval, senza interferire con le eccezioni generate da eventuali funzioni che potrebbe aver chiamato. Non rimproverarmi per aver usato eval. Non è stata una mia decisione.
NOTA: Voglio farlo a livello di programmazione, non in modo interattivo.
Non sto tentando di stampare il traceback. Sto cercando di ispezionarlo. In che modo questo mi dice se l'eccezione si è verificata nel testo stesso o in una funzione chiamata dal testo valutato? –
SyntaxError verrà generato se il testo 'eval' è errato. –
Molti tipi di errori possono essere lanciati se il testo di valutazione è sbagliato.Ho finito per usare inspect e osservare la profondità del traceback per vedere se l'errore era causato dalla valutazione del testo originale o se si trovava nel corpo di una funzione chiamata. –