Le distributeur de billets
Tu tapes ton code. Tu te trompes, et la machine ne s’éteint pas. Elle te dit « code faux, réessaie ».
Un bon programme fait pareil. Quand quelque chose va mal, il le voit et il réagit. Il ne s’arrête pas net avec un message incompréhensible.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Exception | Une erreur qui arrive pendant que le programme tourne. | ValueError |
| try | Mot de Python qui dit : essaie ce bloc. | try: |
| except | Mot de Python qui dit : si cette erreur arrive, fais ceci. | except ValueError: |
| raise | Mot de Python qui lance soi-même une erreur. | raise ValueError("...") |
| Saisie | Ce que tape ou donne l’utilisateur. Elle peut être fausse. | "seize" |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Quand le programme plante
Certaines erreurs ne se voient pas en écrivant. Elles arrivent quand une valeur est mauvaise.
Par exemple int("seize") : « seize » n’est pas un nombre pour Python. Il lance une erreur de type ValueError et le programme s’arrête.
À toi : voir une erreur
age = int("seize")
print("Tu as", age, "ans")
# Lance. Le programme s'arrête à la première ligne.
# Lis le message : ValueError, et la valeur qui pose problème.
Essayer, puis réagir
Avec try, tu dis à Python : essaie ces lignes. Avec except, tu dis ce qu’il faut faire si telle erreur arrive.
Si tout va bien, le bloc except est ignoré. Sinon, Python saute au except et le programme continue.
À toi : try et except
texte = "seize"
try:
age = int(texte)
print("Tu as", age, "ans")
except ValueError:
print("Ce n'est pas un nombre :", texte)
print("Le programme continue.")
# Remplace "seize" par "16" et relance.
Exemple travaillé : deux chemins possibles
| Texte donné | Ce que fait int | Chemin suivi | Ce qui est affiché |
|---|---|---|---|
| "16" | rend 16 | le bloc try va jusqu’au bout | Tu as 16 ans |
| "seize" | lance ValueError | Python saute au except | Ce n’est pas un nombre : seize |
| "" | lance ValueError | Python saute au except | Ce n’est pas un nombre : (rien) |
| "3.5" | lance ValueError | Python saute au except | Ce n’est pas un nombre : 3.5 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Contrôle rapide
À toi de jouer
Contrôle rapide
3 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Plusieurs sortes d’erreurs
Chaque erreur a un nom. Diviser par zéro lance ZeroDivisionError. Un texte qui n’est pas un nombre lance ValueError.
Dans except, on écrit le nom de l’erreur qu’on attend. Les autres erreurs passent comme avant : on ne cache pas ce qu’on ne connaît pas.