En Python, est-il possible d'avoir plusieurs except
instructions pour une seule try
instruction? Tel que :
try:
#something1
#something2
except ExceptionType1:
#return xyz
except ExceptionType2:
#return abc
En Python, est-il possible d'avoir plusieurs except
instructions pour une seule try
instruction? Tel que :
try:
#something1
#something2
except ExceptionType1:
#return xyz
except ExceptionType2:
#return abc
Réponses:
Oui c'est possible.
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()
Voir: http://docs.python.org/tutorial/errors.html
Le mot clé "as" est utilisé pour affecter l'erreur à une variable afin que l'erreur puisse être étudiée plus en détail plus tard dans le code. Notez également que les parenthèses pour le cas de triple exception sont nécessaires en python 3. Cette page contient plus d'informations: intercepter plusieurs exceptions sur une seule ligne (sauf le bloc)
except (SomeError, OtherError):
. Ne répond pas à la question OP, mais pourrait aider certaines personnes qui arrivent ici via Google.
except Exception:
plutôt que plain except:
. (Simple sauf attrapera même SystemExit
et KeyboardInterrupt
ce qui n'est généralement pas ce que vous voulez)
e
puisque vous lui donnez un nom :)