Introduction
Bienvenue à l'Académie Arcane de la Programmation Exceptionnelle, une institution prestigieuse où se rassemblent seulement les plus talentueux magiciennes et magiciennes de codage pour affiner leur art. Vous êtes un jeune magicien qui vient de rejoindre l'académie et le monde toujours défiant des algorithmes magiques et des incantations complexes.
Votre parcours commence sous la direction de Maître Pytho, un célèbre entraîneur de sortilèges compétitifs connu dans tous les royaumes magiques pour ses incroyables capacités à résoudre les problèmes et sa vaste connaissance de la sorcellerie Pythonique. Dans l'académie, chaque magicien doit apprendre l'art du lancer de sorts, mais ce qui rend un magicien vraiment puissant est la capacité d'anticiper et de gérer l'inattendu.
Aujourd'hui, Maître Pytho vous enseignera l'art antique de lever des exceptions, une compétence fondamentale pour tout magicien en herbe qui lui permet de contrôler le flux de la magie (du code) et de créer des systèmes de sécurité contre les erreurs imprévues qui peuvent survenir lors du lancer de sorts (de programmation).
L'objectif de ce Lab est de vous permettre d'écrire du code Python robuste capable de gérer et de lever des exceptions correctement, vous assurant que vos sorts (vos programmes) ne sont pas seulement puissants mais également résistants et sécurisés. Préparez-vous, car vous êtes sur le point d'embarquer dans un voyage enchanté à travers le monde arcan du levé d'exceptions en Python!
Comprendre les bases des exceptions
Dans cette étape, vous allez apprendre les bases des exceptions en Python. Une exception en Python est comme un événement imprévu qui perturbe le flux d'une séquence de lancement de sorts. Lorsque Python rencontre une erreur, il arrête le processus actuel et la propage jusqu'à la pile d'appels jusqu'à ce qu'elle soit gérée. Si elle n'est pas gérée, le sort (le programme) plante et Python affiche un message d'erreur.
Pour simuler un scénario où une exception pourrait se produire, vous allez créer un script Python simple qui essaye de lancer un sort (exécuter une division) qui se passe mal.
Ouvrez un fichier nommé spellcasting.py dans le répertoire ~/project avec le contenu suivant :
## spellcasting.py
def divide_potions(potions, wizards):
return potions / wizards
## Une tentative de diviser des potions entre zéro magiciennes et magiciennes, ce qui entraînera une exception.
divide_potions(10, 0)
Exécutez votre script de lancement de sorts avec la commande :
python3 ~/project/spellcasting.py
Vous remarquerez que Python lève une ZeroDivisionError. Dans l'étape suivante, vous allez apprendre à gérer correctement cette exception :
Traceback (most recent call last):
File "/home/labex/project/spellcasting.py", line 7, in <module>
divide_potions(10, 0)
File "/home/labex/project/spellcasting.py", line 4, in divide_potions
return potions / wizards
ZeroDivisionError: division by zero
Levée d'exceptions personnalisées
Il est temps de passer à une technique de lancement de sorts plus avancée : lever vos propres exceptions. Cela vous permet de créer et d'utiliser des messages d'erreur personnalisés, rendant vos sorts plus flexibles et contrôlés.
Dans cette étape, vous allez modifier le script spellcasting.py pour lever une Exception personnalisée lorsqu'un nombre incorrect de magiciennes et magiciennes est passé à la fonction divide_potions.
Tout d'abord, modifiez la fonction divid_potions dans spellcasting.py en conséquence :
## spellcasting.py
def divide_potions(potions, wizards):
if wizards == 0:
raise Exception("Impossible de diviser les potions entre zéro magiciennes et magiciennes!")
return potions / wizards
## Essayez de diviser les potions à nouveau avec une erreur intentionnelle.
divide_potions(20, 0)
Après avoir enregistré les modifications, exécutez à nouveau votre script modifié :
python3 ~/project/spellcasting.py
Cette fois, Python levera le message d'Exception personnalisé :
Traceback (most recent call last):
File "/home/labex/project/spellcasting.py", line 7, in <module>
divide_potions(20, 0)
File "/home/labex/project/spellcasting.py", line 3, in divide_potions
raise Exception("Impossible de diviser les potions entre zéro magiciennes et magiciennes!")
Exception: Impossible de diviser les potions entre zéro magiciennes et magiciennes!
Gérer les exceptions avec Try-Except
Dans cette étape, vous allez apprendre à gérer les exceptions de manière gracieuse en utilisant le bloc try-except. Assurer que votre sort (votre programme) puisse récupérer des erreurs est une compétence cruciale pour un magicien.
Ajoutez le bloc try-except autour de l'appel de la fonction divide_potions dans le script spellcasting.py :
## spellcasting.py
def divide_potions(potions, wizards):
if wizards == 0:
raise Exception("Impossible de diviser les potions entre zéro magiciennes et magiciennes!")
return potions / wizards
try:
## Essayez de diviser les potions et gérez les erreurs potentielles.
result = divide_potions(30, 0)
print(f"Chaque magicien reçoit {result} potions.")
except Exception as e:
print(f"Le sort a échoué : {e}")
Exécutez ceci dans le terminal :
python3 ~/project/spellcasting.py
Maintenant, lorsque vous exécutez le script, au lieu de planter, il imprimera la sortie :
Le sort a échoué : Impossible de diviser les potions entre zéro magiciennes et magiciennes!
Résumé
Dans ce laboratoire, nous avons exploré les terres enchantées du levé d'exceptions en Python. Nous avons commencé par une introduction aux exceptions en laissant une se produire naturellement, puis appris comment élaborer nos propres exceptions et messages, et finalement terminé avec l'art de gérer ces exceptions sans casser notre sort (notre programme).
Vous maîtrisez désormais les bases du levé et de la gestion d'exceptions en Python, une compétence qui vous servira certainement bien dans votre parcours en tant que magicien de codage. Cela contribue non seulement à la robustesse et à la convivialité de vos programmes, mais vous apprend également à anticiper et à vous préparer aux comportements inattendus, rendant vos sorts infaillibles et votre pouvoir de magicien redoutable.
Que le code soit avec vous, jeune magicien.



