Erreurs Python et exceptions intégrées

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:

  1. Erreurs de syntaxe
  2. 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 ifdé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. dirnous 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 assertinstruction é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+Cou 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, exceptet des finallydéclarations. Pour en savoir plus à leur sujet, visitez les instructions Python try, except and finally.

Articles intéressants...