0Pricing
Python Academy · Leçon

try / except / else / finally

Structurez des blocs de gestion des exceptions pour tous les cas de figure.

try / except / else / finally est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 4 leçons au total.

Introduction

Les structures try/except/else/finally de Python vous donnent un contrôle complet sur la gestion des erreurs et le nettoyage.

try/except de base

try: risky_code() except ExceptionType: handle() — Python n’exécute le bloc except que lorsque ce type d’exception est levé.
try:
    x = int('abc')
except ValueError:
    print('not a number')

Intercepter l’objet exception

except ValueError as e: associe l’exception à e. Utilisez str(e) ou e.args pour obtenir le message.
try:
    int('oops')
except ValueError as e:
    print(f'Error: {e}')

Intercepter plusieurs exceptions

except (TypeError, ValueError) as e: intercepte l’un ou l’autre type.
for val in ['abc', None, 42]:
    try:
        print(int(val))
    except (TypeError, ValueError) as e:
        print(f'skipping {val!r}: {e}')

except nu (à éviter)

except: (sans type) intercepte EVERYTHING, notamment KeyboardInterrupt et SystemExit. C’est presque toujours une erreur — indiquez toujours les types à intercepter.
try:
    risky = 1/0
except ZeroDivisionError:
    print('division error')  # specific

Plusieurs clauses except

Vous pouvez avoir plusieurs blocs except, chacun gérant un type différent. Python les essaie dans l’ordre.
def process(val):
    try:
        return 10 / int(val)
    except ValueError:
        print('not a number')
    except ZeroDivisionError:
        print('division by zero')
process('abc')
process('0')

Clause else

try/except/else : else s’exécute uniquement si aucune exception (NO) n’a été levée. Utilisez-la pour le code qui doit s’exécuter en cas de réussite.
try:
    x = int('42')
except ValueError:
    print('bad input')
else:
    print('parsed:', x)

Clause finally

finally s’exécute ALWAYS — après la réussite de try, après except, et même après return ou break. C’est idéal pour le nettoyage.
def read_file(path):
    f = None
    try:
        f = open(path)
        return f.read()
    except FileNotFoundError:
        return None
    finally:
        if f: f.close()
print(read_file('/nonexistent'))

finally avec return

Lorsqu’un return et un finally sont tous deux présents, finally s’exécute en premier, mais la valeur renvoyée par finally l’emporte. Soyez prudent.
def demo():
    try:
        return 'try'
    finally:
        return 'finally'  # overrides!
print(demo())

Blocs try imbriqués

Les blocs try peuvent être imbriqués. Une exception interne se propage vers l’extérieur si elle n’est pas interceptée par le except interne.
try:
    try:
        x = 1/0
    except ValueError:
        print('inner')
except ZeroDivisionError:
    print('outer caught it')

Journaliser les exceptions

import logging; logging.exception('msg') journalise la trace d’exécution complète. C’est idéal dans du code de production.
import logging
try:
    1/0
except ZeroDivisionError:
    logging.exception('Caught an error')

Vérification rapide

Quelle clause s’exécute, qu’une exception se soit produite ou non ?

Récapitulatif

try/except intercepte les erreurs. else s’exécute en cas de réussite. finally s’exécute ALWAYS (pour le nettoyage). Interceptez des types précis et évitez except nu. Utilisez as e pour accéder à l’exception.

Poursuivez

Excellent travail ! Passez à la leçon suivante pour continuer votre progression.

Questions Fréquemment Posées

La leçon « try / except / else / finally » est-elle gratuite ?

Oui — le texte complet de « try / except / else / finally » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « try / except / else / finally » ?

Structurez des blocs de gestion des exceptions pour tous les cas de figure. Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Python Academy ?

Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « try / except / else / finally » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?

Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Comprendre les exceptions
  2. try / except / else / finally
  3. Lever et relancer des exceptions
  4. Classes d’exception personnalisées
← Retour à Python Academy