Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Maîtriser les erreurs et exceptions intégrées de Python

Erreurs et exceptions intégrées de Python

Découvrez comment Python signale les problèmes, la différence entre erreurs de syntaxe et erreurs d'exécution, et comment gérer les exceptions intégrées en toute confiance.

Vidéo : Gestion des exceptions Python

Quand vous exécutez un programme Python, l'interpréteur arrête l'exécution immédiatement s'il rencontre une erreur non gérée. Ces erreurs se divisent en deux grandes catégories :

  1. Erreurs de syntaxe — problèmes détectés pendant l'analyse.
  2. Erreurs logiques (exceptions) — problèmes qui surviennent pendant l'exécution du code.

Erreurs de syntaxe Python

Une erreur de syntaxe se produit quand le code source viole les règles grammaticales de Python. L'interpréteur vous pointe l'emplacement exact avec un accent circonflexe (^) dans le message d'erreur.

> >>> if a < 3
File "<interactive input>", line 1
if a < 3
^
SyntaxError: invalid syntax

Dans cet exemple, le deux-points (:) manquant après l'instruction if déclenche une SyntaxError.


Erreurs logiques Python (exceptions)

Les erreurs logiques, ou exceptions, ne surgissent qu'après que le code a passé la vérification de syntaxe. Exemples courants :

Quand une exception est levée, Python crée un objet exception. S'il reste non géré, une traceback est affichée, montrant la pile d'appels et la raison de l'échec.

> >>> 1 / 0
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
ZeroDivisionError: division by zero
> >>> open("imaginaire.txt")
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'imaginaire.txt'

Exceptions intégrées Python

L'interpréteur Python lève une large gamme d'exceptions intégrées pour signaler différentes conditions d'échec. Vous pouvez les lister avec l'extrait suivant :

print(dir(locals()['__builtins__']))

Voici une référence concise pour certaines des exceptions intégrées les plus fréquemment rencontrées et les situations qui les déclenchent :

ExceptionCause de l'erreur
AssertionErrorLevée quand une instruction assert échoue.
AttributeErrorLevée quand une assignation ou référence d'attribut échoue.
EOFErrorLevée quand la fonction input() rencontre une condition de fin de fichier.
FloatingPointErrorLevée quand une opération à virgule flottante échoue.
GeneratorExitLevée quand la méthode close() d'un générateur est appelée.
ImportErrorLevée quand le module importé ne peut pas être trouvé.
IndexErrorLevée quand un index de séquence est hors limites.
KeyErrorLevée quand une clé est manquante dans un dictionnaire.
KeyboardInterruptLevée quand l'utilisateur appuie sur Ctrl+C ou Suppr.
MemoryErrorLevée quand une opération dépasse la mémoire disponible.
NameErrorLevée quand une variable n'est pas trouvée dans la portée locale ou globale.
NotImplementedErrorLevée par des méthodes abstraites qui manquent d'implémentation.
OSErrorLevée pour les erreurs système (ex. : E/S de fichier).
OverflowErrorLevée quand un résultat arithmétique est trop grand pour être représenté.
ReferenceErrorLevée quand une référence faible proxy un objet ramassé par le garbage collector.
RuntimeErrorLevée pour les erreurs qui ne rentrent dans aucune autre catégorie.
StopIterationLevée par next() quand un itérateur est épuisé.
SyntaxErrorLevée quand l'analyseur rencontre une syntaxe invalide.
IndentationErrorLevée quand l'indentation est incorrecte.
TabErrorLevée quand l'indentation mélange tabulations et espaces de manière incohérente.
SystemErrorLevée quand l'interpréteur détecte une erreur interne.
SystemExitLevée par sys.exit().
TypeErrorLevée quand une opération ou fonction reçoit un objet de type inapproprié.
UnboundLocalErrorLevée quand une variable locale est référencée avant assignation.
UnicodeErrorLevée pour les erreurs d'encodage ou décodage Unicode.
UnicodeEncodeErrorLevée pendant les erreurs d'encodage Unicode.
UnicodeDecodeErrorLevée pendant les erreurs de décodage Unicode.
UnicodeTranslateErrorLevée pendant les erreurs de traduction Unicode.
ValueErrorLevée quand une fonction reçoit un argument de type correct mais valeur inappropriée.
ZeroDivisionErrorLevée quand on divise ou prend le modulo par zéro.

Si vous avez besoin d'un contrôle plus granulaire, Python vous permet de définir des classes d'exception personnalisées. Voir Exceptions définies par l'utilisateur Python pour plus de détails.

La gestion des exceptions est simple avec les blocs try, except et finally. Pour une exploration plus approfondie, référez-vous à Instructions try, except et finally Python.

Python

  1. Mots-clés et identifiants Python : Maîtriser les mots réservés et les conventions de nommage
  2. Instructions, indentation et commentaires en Python : Guide clair
  3. Variables, constantes et littéraux en Python – Guide complet
  4. Maîtriser la conversion et le transtypage de types en Python : Guide complet
  5. Maîtriser les E/S et l'importation de modules en Python : Guide pratique
  6. Comprendre les variables globales, locales et non locales en Python
  7. Maîtriser les nombres, la conversion de types et les mathématiques en Python
  8. Maîtriser les opérations sur les répertoires et fichiers en Python
  9. Maîtriser les exceptions personnalisées Python : guide pratique