[Mise à jour le : 16/12/2022]
and | continue | finally | is | raise |
as | def | for | lambda | return |
assert | del | from | None | True |
async | elif | global | nonlocal | try |
await | else | if | not | while |
break | except | import | or | with |
class | False | in | pass | yield |
Quand Python rencontre une erreur dans le code, il lève une exception. Le traitement de ces exceptions permettra notamment de donner une réponse à une erreur produite par l'action de l'utilisateur (entrée de valeurs, etc.).
try: # Bloc de code à essayer pass except: # Bloc qui sera exécuté en cas d'erreur pass
Exemple
age = input("Quel est votre âge ? ") try: age = int(age) print("Vous avez", age,"ans") except: print("Erreur lors de la conversion de votre âge !")
Résultat attendu
Quel est votre âge ? 35
Vous avez 35 ans
Quel est votre âge ? ldkfjg
Erreur lors de la conversion de votre âge !
try: # Bloc de code à essayer pass except <error_1>: # Ce bloc sera exécuté si l'erreur = <error_1> pass except <error_2>: # Ce bloc sera exécuté si l'erreur = <error_2> pass except <error_n>: # Ce bloc sera exécuté si l'erreur = <error_n> pass else: # Ce bloc sera exécuté si le code du bloc try s'est exécuté sans erreur # else souvent omis et bloc placé dans try pass finally: # Bloc exécuté qu'il y ait eu des erreurs ou non
Exemple
num = input("Entrée le numérateur ") denom = input("Entrée le dénominateur ") resultat = 0 try: numerateur = int(num) denominateur = int(denom) resultat = numerateur / denominateur except NameError: print("Le numérateur ou le dénominateur n'ont pas été définis") except ValueError: print("Le numérateur ou le dénominateur possède un type incompatible avec la division.") except ZeroDivisionError: print("Le dénominateur est égal à 0.") else: print("Le résultat de la division est", resultat) finally: print("On poursuit l'exécution du programme")
Résultat attendu
Entrer le numérateur 12
Entrer le dénominateur 2
Le résultat de la division est 6.0
On poursuit l'exécution du programme
Entrer le numérateur 12
Entrer le dénominateur klkl
Le numérateur ou le dénominateur possède un type incompatible avec la division.
On poursuit l'exécution du programme
Entrer le numérateur 12
Entrer le dénominateur 0
Le dénominateur est égal à 0.
On poursuit l'exécution du programme
raise TypeException("Message à afficher")
Syntaxe
assert test
Exemple
val = input("Saisissez une valeur supérieure à 0 : ") try: val=int(val) assert val>0 except ValueError: print("Ce n'est pas un nombre") except AssertionError: print("La valeur n'est pas supérieure à 0 !")
Résultat attendu
Saisissez une valeur supérieure à 0 : 6
Saisissez une valeur supérieure à 0 : 0
La valeur n'est pas supérieure à 0 !