Retour au cours

Gestion avancée des erreurs : `else` et `finally`

Programmation Python : Le Bootcamp de Zéro à Héros

Composants avancés du bloc try

La clause else

Le bloc else ne s'exécute que si le code à l'intérieur du bloc try s'est exécuté avec succès (c'est-à-dire qu'aucune exception n'a été levée).

Cas d'utilisation : Effectuer des opérations qui dépendent de la réussite de l'exécution du bloc try, mais qui pourraient elles-mêmes échouer (gardant ainsi le bloc try propre).

python while True: try: user_input = int(input("Entrez un nombre : ")) except ValueError: print("Entrée invalide. Ce n'était pas un nombre entier.") else: # S'exécute UNIQUEMENT si la conversion int(input(...)) a réussi print(f"Nombre lu avec succès : {user_input}") break

La clause finally

Le bloc finally s'exécute indépendamment du fait qu'une exception se soit produite ou non, et que le bloc try se soit terminé normalement ou prématurément (par exemple par un return ou un break).

Cas d'utilisation : Opérations de nettoyage, comme la fermeture de connexions à des fichiers ou la libération de ressources réseau.

python resource = None try: # Supposons que nous ouvrons une connexion ici resource = 1 result = 10 / 0 # Cela lèvera une ZeroDivisionError except ZeroDivisionError: print("Erreur de division capturée.") finally: # Ceci s'exécute toujours if resource: print("Nettoyage : Fermeture de la ressource.") # Le programme se termine proprement après le nettoyage