In Python, è possibile avere più except
istruzioni per una try
istruzione? Ad esempio :
try:
#something1
#something2
except ExceptionType1:
#return xyz
except ExceptionType2:
#return abc
In Python, è possibile avere più except
istruzioni per una try
istruzione? 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 SystemExit
e KeyboardInterrupt
che di solito non è quello che vuoi)
e
anche perché gli dai un nome :)