Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Compréhension de la Hiérarchie des Exceptions | Comprehensive Error Handling
Concepts Avancés de Python

Compréhension de la Hiérarchie des Exceptions

Glissez pour afficher le menu

Lorsque vous travaillez avec la gestion des erreurs en Python, il est important de comprendre la structure de ses classes d'exceptions intégrées. Toutes les exceptions héritent de la classe racine BaseException. La plupart de celles que vous traiterez dans le code quotidien sont des sous-classes de Exception, qui elle-même est un enfant direct de BaseException. Cette conception permet d'intercepter de larges catégories d'erreurs ou de gérer des problèmes spécifiques.

Les exceptions couramment utilisées comme ValueError, TypeError, KeyError et IOError (également appelée OSError dans les versions récentes de Python) sont toutes des sous-classes de Exception. Il existe également des exceptions plus spécialisées, telles que ZeroDivisionError et IndexError, qui héritent de ces classes générales. Certaines exceptions, comme KeyboardInterrupt et SystemExit, héritent directement de BaseException — elles ne sont généralement pas destinées à être interceptées dans les programmes classiques.

Comprendre cette hiérarchie permet d'écrire des blocs try/except précis, en interceptant uniquement ce que vous souhaitez et en évitant de masquer des signaux système critiques.

1234567891011121314151617181920212223242526272829303132
def raise_and_catch_exceptions(): # Catching a ValueError try: int("not a number") except ValueError as ve: print("Caught ValueError:", ve) # Catching a ZeroDivisionError (subclass of ArithmeticError) try: result = 10 / 0 except ZeroDivisionError as zde: print("Caught ZeroDivisionError:", zde) # Catching a TypeError try: result = "10" + 5 except TypeError as te: print("Caught TypeError:", te) # Catching an OSError (formerly IOError) try: open("file_that_does_not_exist.txt") except OSError as oe: print("Caught OSError:", oe) # Catching a general Exception (will catch most, but not all, exceptions) try: raise KeyError("missing key") except Exception as e: print("Caught Exception:", type(e).__name__, "-", e) raise_and_catch_exceptions()

1. Quelle classe d'exception intégrée utiliseriez-vous pour intercepter les erreurs lors de la tentative de conversion d'une chaîne en entier qui ne peut pas être convertie ?

2. Quelle exception intégrée est levée lorsque vous essayez d'accéder à une clé de dictionnaire qui n'existe pas ?

question mark

Quelle classe d'exception intégrée utiliseriez-vous pour intercepter les erreurs lors de la tentative de conversion d'une chaîne en entier qui ne peut pas être convertie ?

Sélectionnez la réponse correcte

question mark

Quelle exception intégrée est levée lorsque vous essayez d'accéder à une clé de dictionnaire qui n'existe pas ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 1

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 1. Chapitre 1
some-alt