Sto cercando di catturare un'eccezione e sollevare un errore più specifico in un punto nel mio codice:eccezione Raise a eccezione di blocco e reprimere primo errore
try:
something_crazy()
except SomeReallyVagueError:
raise ABetterError('message')
Questo funziona in Python 2, ma in Python 3 , mostra entrambe le eccezioni:
Traceback(most recent call last):
...
SomeReallyVagueError: ...
...
During handling of the above exception, another exception occurred:
Traceback(most recent call last):
...
ABetterError: message
...
c'è qualche modo per aggirare il problema, in modo che non viene mostrato traceback SomeReallyVagueError
s'?
Ciò richiede 3.3 o successiva. –
Ha funzionato! L'ho appena inserito in un'istruzione 'exec' perché il mio codice deve essere eseguito in Python 2 e 3. – refi64
Il' raise da 'è stato aggiunto in 3.0, ma la parte' from None' di quella sintassi non lo ha reso fino a 3.3 come parte di [PEP 409] (https://docs.python.org/3.3/whatsnew/3.3.html#pep-409-suppressing-exception-context). –