In Python, è possibile avere più exceptistruzioni per una tryistruzione? Ad esempio :
try:
#something1
#something2
except ExceptionType1:
#return xyz
except ExceptionType2:
#return abc
In Python, è possibile avere più exceptistruzioni per una tryistruzione? Ad esempio :
try:
#something1
#something2
except ExceptionType1:
#return xyz
except ExceptionType2:
#return abc
Risposte:
Sì, è possibile.
try:
...
except FirstException:
handle_first_one()
except SecondException:
handle_second_one()
except (ThirdException, FourthException, FifthException) as e:
handle_either_of_3rd_4th_or_5th()
except Exception:
handle_all_other_exceptions()
Vedi: http://docs.python.org/tutorial/errors.html
La parola chiave "as" viene utilizzata per assegnare l'errore a una variabile in modo che l'errore possa essere esaminato più approfonditamente più avanti nel codice. Si noti inoltre che le parentesi per il caso di tripla eccezione sono necessarie in Python 3. Questa pagina contiene ulteriori informazioni: Cattura più eccezioni in una riga (tranne blocco)
except (SomeError, OtherError):. Non risponde alla domanda OP, ma potrebbe aiutare alcune persone che arrivano qui tramite Google.
except Exception:posto di plain except:. (Plain tranne prenderà pari SystemExite KeyboardInterruptche di solito non è quello che vuoi)
eanche perché gli dai un nome :)