Déclencher une erreur soi-même
Jusqu'ici, l'arrêt venait de la ligne elle-même : une division par zéro, ou un nom qui n'avait pas de valeur. raise prend un autre chemin. C'est vous qui écrivez l'arrêt dans le programme, vous choisissez son nom et vous posez un court message à côté.
raise ValueError("empty")
print("water")
Le programme s'arrête sur raise. L'écran montre ValueError et le mot empty. print("water") n'est pas atteint. Il n'y a pas de division ici. Cet arrêt vient de raise, pas d'un calcul.
cups = 0
if cups < 1:
raise ValueError("empty")
print("water")
Ce programme repart à neuf. cups vaut 0. Zéro est plus petit que un, donc on entre dans le if et raise s'exécute. L'écran montre encore le même arrêt : ValueError et le mot empty. water n'est pas écrit. Personne, sur cette page, n'attrape l'arrêt, et le programme s'arrête là.
cups = 3
if cups < 1:
raise ValueError("empty")
print("water")
Celui-ci repart aussi à neuf. Cette fois cups vaut 3. Trois n'est pas plus petit que un, donc on n'entre pas dans le if. raise ne s'exécute pas. L'écran n'écrit que water, et il n'y a pas d'arrêt.
La ligne raise est décalée vers la droite sous if. Ce décalage la place dans le if. print("water") n'est pas décalé. Si raise s'exécute, le programme s'est déjà arrêté et water n'a plus son tour. Si le if est sauté, water s'exécute.
Le nom écrit à côté de raise est ValueError, pas ZeroDivisionError. ZeroDivisionError servait à la division par zéro. Ici le nombre de tasses ne convient pas, donc l'arrêt s'appelle ValueError. Si vous l'attrapez plus tard, except doit dire ValueError. except ZeroDivisionError ne prend pas celui-ci. Cette capture n'est pas dans les programmes de cette page. Ce qui est entre guillemets est le message. empty, vous l'avez mis pour qu'il se voie à côté du nom. Python n'y place pas None.
La page suivante, ce sont les fichiers. Cette page montre seulement comment vous provoquez un arrêt. Elle n'ouvre pas de fichier.
Les tasses et l'arrêt que vous avez écrit
Le premier programme s'arrête sur raise, et water n'est pas écrit. Avec cups à 0, on entre dans le if et le même arrêt arrive. Avec cups à 3, raise ne s'exécute pas et l'écran écrit water. Le nom de cet arrêt est ValueError. La page suivante, ce sont les fichiers.
🧠 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