When things go wrong
- A runtime error normally crashes the program.
- An exception is Python's signal that something went wrong.
- Exception handling lets you catch it and keep running.
Quand ça cloche
- Une erreur d'exécution fait normalement planter le programme.
- Une exception est le signal de Python indiquant qu'un problème est survenu.
- La gestion des exceptions permet de la capturer et de continuer l'exécution.
try / except
- Put risky code in a
try:block. - If it raises an exception, the
except:block runs instead of crashing. - If nothing goes wrong, the
exceptblock is skipped.
try / except
- Placez le code risqué dans un bloc
try:. - S'il lève une exception, le bloc
except:s'exécute au lieu de planter. - Si rien ne se passe mal, le bloc
exceptest ignoré.
try:
number = int("not a number")
except ValueError:
number = 0
print(number)
Catch the right error
- Name the type of error you expect:
except ValueError:. ValueErroris bad text for a number;ZeroDivisionErroris divide by zero.- Catching a specific type means you do not hide other bugs.
Capturer la bonne erreur
- Nommez le type d'erreur attendu :
except ValueError:. ValueErrorest du mauvais texte pour un nombre ;ZeroDivisionErrorest une division par zéro.- Capturer un type spécifique signifie que vous ne masquez pas d'autres bugs.
try:
print(10 / 0)
except ZeroDivisionError:
print("Cannot divide by zero")
finally and raise
- A
finally:block always runs, error or not — good for cleanup. raiselets you signal an error on purpose.raise ValueError("message")stops the code unless something catches it.
finally et raise
- Un bloc
finally:s'exécute toujours, avec ou sans erreur — idéal pour le nettoyage. raisepermet à vous de signaler intentionnellement une erreur.raise ValueError("message")arrête le code sauf si quelque chose le capture.
try:
raise ValueError("bad value")
except ValueError as e:
print("Caught:", e)
finally:
print("Always runs")
Why it matters
- A robust program should not crash on bad input.
- Handling exceptions lets it warn the user and carry on.
- It also makes sure files and other resources are closed cleanly.
Pourquoi c'est important
- Un programme robuste ne devrait pas planter sur une mauvaise entrée.
- Gérer les exceptions lui permet d'avertir l'utilisateur et de continuer.
- Il assure aussi que les fichiers et autres ressources sont fermés proprement.
Common mistakes
- Catch a specific error (
except ValueError:), not a bareexcept:. - Put only the risky line inside the
try.
Erreurs courantes
- Capturez une erreur spécifique (
except ValueError:), pas une simpleexcept:. - Mettez uniquement la ligne risquée à l'intérieur du
try.
Now you try
- Use
try/except(andraisein the last task). - Press Check answer to test your code.
À vous maintenant
- Utilisez
try/except(etraisedans la dernière tâche). - Appuyez sur Vérifier la réponse pour tester votre code.
try / except
Code runs in try; if it fails, control jumps to except. · Le code s'exécute dans try ; s'il échoue, le contrôle passe à except.
Write safe_int(text) that returns · rendements int(text). If the text is not a valid number, catch the ValueError and return -1 instead. · Écrivez safe_int(text) qui retourne int(text). Si le texte n'est pas un nombre valide, attrapez la ValueError et retournez -1 à la place.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Write divide(a, b) that returns · rendements a / b. If b is 0, catch the ZeroDivisionError and return None instead. · Écrivez divide(a, b) qui retourne a / b. Si b est 0, attrapez la ZeroDivisionError et retournez None à la place.
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.
Write withdraw(balance, amount). If amount is more than balance, raise ValueError. Otherwise return · rendement the new balance (balance - amount). · Écrivez withdraw(balance, amount). Si amount est supérieur à balance, raise ValueError. Sinon return · rendement le nouveau solde (balance - amount).
Click Run to see the output here. · Cliquez sur Exécuter pour voir le résultat ici.