ho qualche codice in un except
clausola di Python che è destinato a fare un po 'di registrazione, ma il codice di registrazione può causare in sé un'eccezione. Nel mio caso, vorrei semplicemente ignorare qualsiasi seconda eccezione che potrebbe verificarsi e sollevare l'eccezione originale. Ecco un esempio molto semplificato:Gestione un'eccezione Python che si verifica all'interno di una clausola except
try:
a = this_variable_doesnt_exist
except:
try:
1/0
except:
pass
raise
L'esecuzione del codice di cui sopra, spero di ottenere:
NameError: name 'this_variable_doesnt_exist' is not defined
ma invece, in Python 2.x, ottengo:
ZeroDivisionError: integer division or modulo by zero
Ho scoperto che in Python 3.x, fa quello che voglio.
Non ho trovato molti commenti su questo nei documenti Python 2.x (a meno che non lo avessi perso). Posso ottenere questo in 2.x?
come si dovrebbe gestire esplicitamente l'eccezione secondaria? Si prega di includere questo nella vostra risposta –