English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base Python

Contrôle des flux Python

Fonctions en Python

Types de données en Python

Opérations de fichiers Python

Objets et classes Python

Dates et heures Python

Connaissances avancées Python

Manuel de référence Python

Erreurs et exceptions intégrées en Python

Lorsque Python (interpréteur) rencontre une erreur, il déclenche une exception. Par exemple : division par zéro. Dans cet article, vous découvrirez les différents gestionnaires d'exceptions intégrés à Python.

Lors de la rédaction d'un programme, nous rencontrons souvent des erreurs.

Les erreurs causées par le non-respect de la structure correcte du langage (syntaxe) sont appelées erreurs de syntaxe ou erreurs de parsing.

>>> if a < 3
  Fichier "<input interactif>", ligne 1
    if a < 3
           ^
SyntaxError: syntaxe invalide

Ici, nous pouvons noter que la virgule-point est manquante dans la phrase if.

Les erreurs peuvent également se produire au cours de l'exécution, ce qui est appelé exceptions. Par exemple, lorsque nous essayons d'ouvrir un fichier qui n'existe pas (FileNotFoundError), de diviser un nombre par zéro (ZeroDivisionError), ou de ne pas trouver le module que nous essayons d'importer (ImportError), cela se produit généralement.

À chaque fois que ce type d'erreur en temps de exécution se produit, Python crée un objet d'exception. Si elle n'est pas traitée correctement, elle affiche un retour trace de l'erreur ainsi que des détails sur la cause de l'erreur.

>>> 1 / 0
Traceback (appel le plus récent en dernier):
 Fichier "<string>", ligne 301, dans runcode
 Fichier "<input interactif>", ligne 1, dans <module>
ZeroDivisionError: division par zéro
>>> open("imaginary.txt")
Traceback (appel le plus récent en dernier):
 Fichier "<string>", ligne 301, dans runcode
 Fichier "<input interactif>", ligne 1, dans <module>
FileNotFoundError: [Errno 2] Aucun fichier ou répertoire trouvé : 'imaginary.txt'

Exceptions intégrées de Python

Les opérations illicites peuvent lancer des exceptions. Python contient de nombreuses exceptions intégrées qui sont déclenchées lors des erreurs correspondantes. Nous pouvons utiliser la fonction intégrée local() pour voir toutes les exceptions intégrées, comme indiqué ci-dessous.

>>> locals()['__builtins__']

Cela nous retournera le dictionnaire des exceptions, des fonctions et des attributs intégrés.

Voici une liste des exceptions intégrées courantes en programmation Python ainsi que des erreurs qui peuvent causer ces exceptions.

Exception standard intégrée de Python
ExceptionRaison de l'erreur
AssertionErrorLancé lors de l'échec de l'expression assert.
AttributeErrorLancé lors de l'échec de l'affectation ou de la référence de l'attribut.
EOFErrorLancé lorsque la fonction input() atteint la condition de fin de fichier.
FloatingPointErrorLancé lorsque l'opération de calcul en virgule flottante échoue.
GeneratorExitLancé lors de l'appel de la méthode generateur à close().
ImportErrorLancé lorsque le module importé n'est pas trouvé.
IndexErrorLancé lorsque l'index de la séquence dépasse la gamme.
KeyErrorLancé lorsque la clé n'est pas trouvée dans le dictionnaire.
KeyboardInterruptLorsque l'utilisateur appuie sur la touche d'interruption (Ctrl + Lancé lors de l'opération de c ou Delete).
MemoryErrorLancé lors d'une opération de mémoire insuffisante.
NameErrorLancé lorsque la variable n'est pas trouvée à l'échelle locale ou globale.
NotImplementedErrorMéthode non encore réalisée.
OSErrorLancé lorsque l'opération système provoque une erreur système.
OverflowErrorLancé lorsque le résultat d'une opération arithmétique est trop grand pour être représenté.
ReferenceErrorLancé lors de l'accès aux objets de collecte de garbage via un proxy de référence faible.
RuntimeErrorLancé lorsque l'erreur ne correspond à aucune autre catégorie.
StopIterationLancé par la fonction next() pour indiquer que l'itérateur n'a plus d'éléments à renvoyer.
SyntaxErrorLancé par l'analyseur lors d'une erreur de syntaxe.
IndentationErrorLancé lorsque l'indentation est incorrecte.
TabErrorLancé lorsque l'indentation est composée de tabulations et d'espaces non cohérents.
SystemErrorLancé lorsque l'interpréteur détecte une erreur interne.
SystemExitLancé par la fonction sys.exit().
TypeErrorLancé lorsque une fonction ou une opération est appliquée à un objet de type incorrect.
UnboundLocalErrorLancé lors d'une référence à une variable locale dans une fonction ou une méthode sans valeur liée à cette variable.
UnicodeErrorLancé lors d'une erreur d'encodage ou de décodage Unicode.
UnicodeEncodeErrorLancé lors d'une erreur Unicode liée à l'encodage.
UnicodeDecodeErrorLancé lors d'une erreur Unicode liée à la décodage.
UnicodeTranslateErrorLancé lors d'une erreur Unicode liée à la traduction.
ValueErrorLancé lorsque la fonction reçoit un argument de type correct mais une valeur incorrecte.
ZeroDivisionErrorLancé lorsque le second opérande de la division ou du modulo est nul.

Nous pouvons également définir nos propres exceptions en Python (si nécessaire). Consultez cette page pour en savoir plus surExceptions définies par l'utilisateurPlus d'informations. 

Nous pouvons utiliser les instructions try, except et finallyGérer ces exceptions intégrées et définies par l'utilisateur en Python.