Vorrei rilevare un'eccezione specifica e gestirla di conseguenza, quindi vorrei continuare ed eseguire la gestione generica che altre eccezioni dovrebbero avere.Gestione di eccezioni Python specifiche e generali?
Provenendo da uno sfondo C, in precedenza avrei potuto utilizzare gotos per ottenere l'effetto desiderato.
Questo è quello che sto facendo attualmente è e funziona benissimo:
try:
output_var = some_magical_function()
except IntegrityError as zde:
integrity_error_handling()
shared_exception_handling_function(zde) # could be error reporting
except SomeOtherException as soe:
shared_exception_handling_function(soe) # the same function as above
TLDR:
Ie - C'è modo "Pythonic" di fare quanto segue:
try:
output_var = some_magical_function()
except IntegrityError as zde:
integrity_error_handling()
except ALLExceptions as ae: # all exceptions INCLUDING the IntregityError
shared_exception_handling_function(ae) # could be error reporting
NB: Sono a conoscenza della clausola finally - non è intesa per l'ordine (cioè per la chiusura di file) ·
Sfortunatamente in Python non ci sono le tecniche "casuali" per "sfuggire" a certe eccezioni, ma per costruire una struttura "try..except" in cascata per gestire specifiche in inner, quindi passare a outer per la gestione generale. – woozyking