English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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'
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 | Raison de l'erreur |
---|---|
AssertionError | Lancé lors de l'échec de l'expression assert. |
AttributeError | Lancé lors de l'échec de l'affectation ou de la référence de l'attribut. |
EOFError | Lancé lorsque la fonction input() atteint la condition de fin de fichier. |
FloatingPointError | Lancé lorsque l'opération de calcul en virgule flottante échoue. |
GeneratorExit | Lancé lors de l'appel de la méthode generateur à close(). |
ImportError | Lancé lorsque le module importé n'est pas trouvé. |
IndexError | Lancé lorsque l'index de la séquence dépasse la gamme. |
KeyError | Lancé lorsque la clé n'est pas trouvée dans le dictionnaire. |
KeyboardInterrupt | Lorsque l'utilisateur appuie sur la touche d'interruption (Ctrl + Lancé lors de l'opération de c ou Delete). |
MemoryError | Lancé lors d'une opération de mémoire insuffisante. |
NameError | Lancé lorsque la variable n'est pas trouvée à l'échelle locale ou globale. |
NotImplementedError | Méthode non encore réalisée. |
OSError | Lancé lorsque l'opération système provoque une erreur système. |
OverflowError | Lancé lorsque le résultat d'une opération arithmétique est trop grand pour être représenté. |
ReferenceError | Lancé lors de l'accès aux objets de collecte de garbage via un proxy de référence faible. |
RuntimeError | Lancé lorsque l'erreur ne correspond à aucune autre catégorie. |
StopIteration | Lancé par la fonction next() pour indiquer que l'itérateur n'a plus d'éléments à renvoyer. |
SyntaxError | Lancé par l'analyseur lors d'une erreur de syntaxe. |
IndentationError | Lancé lorsque l'indentation est incorrecte. |
TabError | Lancé lorsque l'indentation est composée de tabulations et d'espaces non cohérents. |
SystemError | Lancé lorsque l'interpréteur détecte une erreur interne. |
SystemExit | Lancé par la fonction sys.exit(). |
TypeError | Lancé lorsque une fonction ou une opération est appliquée à un objet de type incorrect. |
UnboundLocalError | Lancé lors d'une référence à une variable locale dans une fonction ou une méthode sans valeur liée à cette variable. |
UnicodeError | Lancé lors d'une erreur d'encodage ou de décodage Unicode. |
UnicodeEncodeError | Lancé lors d'une erreur Unicode liée à l'encodage. |
UnicodeDecodeError | Lancé lors d'une erreur Unicode liée à la décodage. |
UnicodeTranslateError | Lancé lors d'une erreur Unicode liée à la traduction. |
ValueError | Lancé lorsque la fonction reçoit un argument de type correct mais une valeur incorrecte. |
ZeroDivisionError | Lancé 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.