Attraper une erreur
Les lignes qui peuvent s'arrêter se placent sous try. except nomme l'arrêt que vous allez traiter. except ZeroDivisionError ne s'exécute que si l'arrêt dans try porte ce nom. Après try et except ensemble, le programme continue.
try:
print(1 / 0)
print("rice")
except ZeroDivisionError:
print("skip")
print("done")
À l'écran : skip, puis done. print(1 / 0) s'arrête dans try. print("rice") est encore dans try, donc il ne s'exécute pas. Attraper l'arrêt ne revient pas finir le reste de try. except écrit skip. print("done") est dehors, donc il s'exécute après la capture. Le programme ne se termine pas sur cet arrêt.
Le nom doit correspondre. Mettez print(tea) dans ce try et ne donnez jamais de valeur à tea : l'arrêt est NameError. except ZeroDivisionError ne traite pas ce nom. Le programme s'arrête quand même. skip n'est pas écrit, done non plus. Cette ligne n'est pas dans le programme de cette page.
Si toutes les lignes dans try vont jusqu'au bout, except ne s'exécute pas. Le programme suivant recommence. Rien du premier écran n'est encore là.
try:
print(8 / 2)
except ZeroDivisionError:
print("skip")
print("done")
À l'écran : 4.0, puis done. 4.0, c'est quatre, avec un point décimal. Il n'y a pas eu d'arrêt, donc skip n'est pas écrit. done s'exécute quand même, parce qu'il est en dehors de la capture.
Les lignes sous try et sous except sont décalées vers la droite. Ce décalage les met à l'intérieur. print("done") n'est pas décalé sous except, donc il ne fait pas partie de la capture. Il s'exécute quand try se termine, et aussi quand l'arrêt nommé est attrapé.
La page suivante consiste à provoquer un arrêt vous-même. Cette page n'attrape qu'un arrêt qu'une ligne a déjà rencontré, et seulement si le nom correspond.
Ce qui s'écrit, et ce qui est sauté
- Qu'écrit le premier programme ?
- Que se passe-t-il pour print("rice") ?
- Qu'écrit le second programme ?
- Que se passe-t-il si print(tea) est dans try, que tea n'a jamais reçu de valeur, et que except ne nomme que ZeroDivisionError ?
Le nom doit correspondre
Le premier écran est skip, puis done. rice ne s'exécute pas, parce qu'il est encore dans try après l'arrêt. Le second est 4.0, puis done, et skip n'est pas écrit. NameError n'est pas attrapé par except ZeroDivisionError. done est dehors, donc il s'exécute quand l'arrêt nommé est attrapé et quand try se termine. La page suivante consiste à provoquer un arrêt vous-même.
🧠 Testez Vos Connaissances
Testez Vos Connaissances
Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet
📝 Instructions
- Lisez chaque question attentivement
- Sélectionnez la meilleure réponse pour chaque question
- Vous pouvez refaire le quiz autant de fois que vous le souhaitez
- Votre progression sera affichée en haut