Chargement...

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é.

vous écrivez l'arrêt, water ne s'exécute pas

python
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.

zéro tasse entre dans le if et déclenche l'arrêt

python
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à.

trois tasses laisse raise de côté et écrit water

python
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

Prêt à Commencer

Testez Vos Connaissances

Mettez-vous au défi avec ce quiz interactif et voyez à quel point vous comprenez le sujet

❓
4
Questions
🎯
70%
Pour Réussir
♾️
∞
Temps
🔄
∞
Tentatives

📝 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