Dans ce didacticiel, vous découvrirez les différents types d'erreurs et d'exceptions intégrées à Python. Ils sont déclenchés chaque fois que l'interpréteur Python rencontre des erreurs.
Vidéo: Gestion des exceptions Python
Nous pouvons faire certaines erreurs lors de l'écriture d'un programme qui conduisent à des erreurs lorsque nous essayons de l'exécuter. Un programme python se termine dès qu'il rencontre une erreur non gérée. Ces erreurs peuvent être globalement classées en deux classes:
- Erreurs de syntaxe
- Erreurs logiques (exceptions)
Erreurs de syntaxe Python
Une erreur causée par le non-respect de la structure (syntaxe) appropriée du langage est appelée erreur de syntaxe ou erreur d'analyse .
Regardons un exemple:
>>> if a < 3 File "", line 1 if a < 3 SyntaxError: invalid syntax
Comme indiqué dans l'exemple, une flèche indique où l'analyseur a rencontré l'erreur de syntaxe.
Nous pouvons remarquer ici qu'il :
manque un deux - points dans la if
déclaration.
Erreurs logiques Python (exceptions)
Les erreurs qui se produisent lors de l'exécution (après avoir passé le test de syntaxe) sont appelées exceptions ou erreurs logiques .
Par exemple, ils se produisent lorsque nous essayons d'ouvrir un fichier (en lecture) qui n'existe pas ( FileNotFoundError
), essayons de diviser un nombre par zéro ( ZeroDivisionError
), ou essayons d'importer un module qui n'existe pas ( ImportError
).
Chaque fois que ces types d'erreurs d'exécution se produisent, Python crée un objet d'exception. S'il n'est pas géré correctement, il imprime une trace de cette erreur avec des détails sur la raison pour laquelle cette erreur s'est produite.
Voyons comment Python traite ces erreurs:
>>> 1 / 0 Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in ZeroDivisionError: division by zero >>> open("imaginary.txt") Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in FileNotFoundError: (Errno 2) No such file or directory: 'imaginary.txt'
Exceptions intégrées Python
Les opérations illégales peuvent soulever des exceptions. Il existe de nombreuses exceptions intégrées dans Python qui sont déclenchées lorsque des erreurs correspondantes se produisent. Nous pouvons afficher toutes les exceptions intégrées à l'aide de la local()
fonction intégrée comme suit:
print(dir(locals()('__builtins__')))
locals()('__builtins__')
renverra un module d'exceptions, de fonctions et d'attributs intégrés. dir
nous permet de lister ces attributs sous forme de chaînes.
Certaines des exceptions intégrées courantes dans la programmation Python ainsi que l'erreur qui les provoquent sont répertoriées ci-dessous:
Exception | Cause de l'erreur |
---|---|
AssertionError | Déclenché lorsqu'une assert instruction échoue. |
AttributeError | Déclenché lorsque l'attribution d'attribut ou la référence échoue. |
EOFError | Déclenché lorsque la input() fonction atteint la condition de fin de fichier. |
FloatingPointError | Déclenché lorsqu'une opération en virgule flottante échoue. |
GeneratorExit | Raise lorsque la close() méthode d' un générateur est appelée. |
ImportError | Déclenché lorsque le module importé est introuvable. |
IndexError | Levé lorsque l'index d'une séquence est hors de portée. |
KeyError | Déclenché lorsqu'une clé n'est pas trouvée dans un dictionnaire. |
KeyboardInterrupt | Levé lorsque l'utilisateur appuie sur la touche d'interruption ( Ctrl+C ou Delete ). |
MemoryError | Déclenché lorsqu'une opération manque de mémoire. |
NameError | Déclenché lorsqu'une variable n'est pas trouvée dans la portée locale ou globale. |
NotImplementedError | Élevé par des méthodes abstraites. |
OSError | Déclenché lorsque le fonctionnement du système provoque une erreur liée au système. |
OverflowError | Levé lorsque le résultat d'une opération arithmétique est trop grand pour être représenté. |
ReferenceError | Déclenché lorsqu'un proxy de référence faible est utilisé pour accéder à un référent récupéré par la mémoire. |
RuntimeError | Déclenché lorsqu'une erreur n'appartient à aucune autre catégorie. |
StopIteration | Déclenché par la next() fonction pour indiquer qu'il n'y a plus d'élément à renvoyer par l'itérateur. |
SyntaxError | Déclenché par l'analyseur lorsqu'une erreur de syntaxe est rencontrée. |
IndentationError | Levé lorsqu'il y a une indentation incorrecte. |
TabError | Déclenché lorsque l'indentation se compose de tabulations et d'espaces incohérents. |
SystemError | Levé lorsque l'interpréteur détecte une erreur interne |
SystemExit | Élevé par la sys.exit() fonction. |
TypeError | Déclenché lorsqu'une fonction ou une opération est appliquée à un objet de type incorrect. |
UnboundLocalError | Déclenché lorsqu'une référence est faite à une variable locale dans une fonction ou une méthode, mais qu'aucune valeur n'a été liée à cette variable. |
UnicodeError | Déclenché lorsqu'une erreur de codage ou de décodage liée à Unicode se produit. |
UnicodeEncodeError | Déclenché lorsqu'une erreur liée à Unicode se produit pendant le codage. |
UnicodeDecodeError | Déclenché lorsqu'une erreur liée à Unicode se produit pendant le décodage. |
UnicodeTranslateError | Déclenché lorsqu'une erreur liée à Unicode se produit pendant la traduction. |
ValueError | Déclenché lorsqu'une fonction obtient un argument de type correct mais de valeur incorrecte. |
ZeroDivisionError | Déclenché lorsque le deuxième opérande de la division ou de l'opération modulo est égal à zéro. |
Si nécessaire, nous pouvons également définir nos propres exceptions en Python. Pour en savoir plus à leur sujet, visitez Exceptions Python définies par l'utilisateur.
Nous pouvons gérer ces intégrés et des exceptions définies par l' utilisateur en Python à l' aide try
, except
et des finally
déclarations. Pour en savoir plus à leur sujet, visitez les instructions Python try, except and finally.