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 la gestion d'exceptions Python : utiliser try, except, finally et raise efficacement

Maîtriser la gestion d'exceptions Python : utiliser try, except, finally et raise efficacement

Qu'est-ce que la gestion d'exceptions en Python ?

Une exception est une erreur qui se produit au moment de l'exécution d'un programme. Cependant, pendant l'exécution d'un programme, Python génère une exception qui doit être gérée pour éviter que votre programme ne plante. En Python, les exceptions se déclenchent automatiquement sur les erreurs, ou elles peuvent être déclenchées et interceptées par votre code.

L'exception indique que, bien que l'événement puisse se produire, ce type d'événement arrive rarement. Quand la méthode n'est pas capable de gérer l'exception, elle est lancée vers sa fonction appelante. Finalement, quand une exception est lancée hors de la fonction principale, le programme se termine brutalement.

Dans ce tutoriel sur la gestion d'exceptions Python, vous apprendrez :

Exemples courants d'exceptions :

Pourquoi utiliser les exceptions ?

Voici les raisons d'utiliser les exceptions en Python :

Règles des exceptions

Voici quelques règles essentielles de la gestion d'exceptions Python :

Mécanisme de gestion d'exceptions Python

La gestion d'exceptions est gérée par les 5 mots-clés suivants :

  1. try
  2. except
  3. finally
  4. raise

Instruction try Python

Une instruction try inclut le mot-clé try, suivi de deux-points (:) et d'une suite de code dans laquelle des exceptions peuvent survenir. Elle a une ou plusieurs clauses.

Pendant l'exécution de l'instruction try, si aucune exception ne s'est produite, l'interpréteur ignore les gestionnaires d'exceptions pour ce try spécifique.

Si une exception se produit dans une suite try, la suite try expire et le contrôle du programme se transfère au gestionnaire except correspondant suivant la suite try.

Syntaxe :
try:
    instruction(s)

L'instruction except

Les blocs except prennent un argument à la fois, qui est le type d'exception qu'ils sont susceptibles d'attraper. Ces arguments peuvent aller d'un type d'exception spécifique à une catégorie "attraper-tout" d'exceptions.

Règles pour le bloc except :

Exemple :

try:
    # code risqué
except IndexError as e:
    print("IndexError attrapé :", e)
except Exception as e:
    print("Autre exception :", e)

Instruction finally en Python

Le bloc finally s'exécute toujours, indépendamment de si une exception a été levée ou non. Le mot-clé finally vous permet de créer un bloc de code qui suit un bloc try-except.

La clause finally est optionnelle. Elle est destinée à définir des actions de nettoyage qui doivent être exécutées dans toutes les conditions.

try:
    raise KeyboardInterrupt
finally:
    print('Bienvenue, monde !')

# Sortie :
# Bienvenue, monde !
# KeyboardInterrupt

La clause finally s'exécute avant la fin du bloc try.

Instruction raise en Python

L'instruction raise spécifie un argument qui initialise l'objet exception. Ici, une virgule suit le nom de l'exception, et l'argument ou tuple d'arguments qui suit la virgule.

Syntaxe :

raise [Exception [, args [, traceback]]]

Dans cette syntaxe, l'argument est optionnel, et au moment de l'exécution, la valeur de l'argument d'exception est toujours None.

Exemple :

Une exception Python peut être n'importe quelle valeur comme une chaîne, classe, nombre ou objet. La plupart de ces exceptions levées par le noyau Python sont des classes avec un argument qui est une instance de la classe.

# Lever une exception personnalisée
raise ValueError("Valeur invalide fournie")

Erreurs Python importantes

Type d'erreurDescription
ArithmeticErrorClasse de base pour toutes les exceptions arithmétiques. Levée pour les erreurs dans les opérations arithmétiques.
ImportErrorLevée quand vous essayez d'importer un module qui n'est pas présent. Se produit si vous avez fait une faute de frappe dans le nom du module ou si le module n'est pas dans le chemin standard.
IndexErrorLevée quand vous essayez de référencer une séquence hors limites.
KeyErrorQuand une clé spécifique n'est pas trouvée dans un dictionnaire, une exception KeyError est levée.
NameErrorLevée quand un nom est référencé dans le code mais n'existe jamais dans l'espace de noms local ou global.
ValueErrorLevée quand une fonction ou opération intégrée reçoit un argument de type correct mais de valeur inappropriée.
EOFErrorLevée quand une des fonctions intégrées (input()) atteint une condition EOF sans lire de données.
ZeroDivisionErrorLevée quand une division ou modulo par zéro a lieu pour tous les types numériques.
IOErrorLevée quand une opération d'entrée/sortie échoue.
SyntaxErrorLevée quand il y a une erreur dans la syntaxe Python.
IndentationErrorLevée quand l'indentation n'est pas correctement définie.

Autres exceptions Python importantes

ExceptionDescription
ArithmeticExceptionErreur arithmétique, telle que division par zéro.
ArrayIndexOutOfBoundsExceptionIndex de tableau hors limites.
ArrayStoreExceptionAssignation vers un élément de tableau de type incompatible.
ClassCastExceptionCast invalide
IllegalMonitorStateExceptionOpération moniteur illégale, comme attendre sur un thread non verrouillé.
IllegalStateExceptionEnvironnement ou application dans un état incorrect.
ClassNotFoundExceptionClasse non trouvée.
CloneNotSupportedExceptionTentative de cloner un objet qui n'implémente pas l'interface Cloneable.
IllegalAccessExceptionAccès à une classe refusé.
InstantiationExceptionSe produit quand vous tentez de créer un objet d'une interface ou classe abstraite.

Erreur vs Exceptions

ErreurExceptions
Toutes les erreurs en Python sont du type non-vérifié.Les exceptions incluent les types vérifiés et non-vérifiés.
Les erreurs surviennent à l'exécution, inconnues du compilateur.Les exceptions peuvent être récupérées en les gérant avec des blocs try-except.
Les erreurs sont principalement causées par l'environnement d'exécution.L'application elle-même cause les exceptions.
Exemples : OutOfMemoryErrorExemples : Exceptions vérifiées, SQLException, NullPointerException, etc.

Résumé

Python

  1. Maîtriser les types de données Python : Guide pratique
  2. Maîtriser les opérateurs Python : Guide complet
  3. Maîtriser l'instruction pass en Python : Guide pratique
  4. Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
  5. Maîtriser les dictionnaires Python : création, manipulation et techniques avancées
  6. Maîtriser la gestion d'exceptions Python : try, except, else et finally expliqués
  7. Maîtriser les itérateurs Python : fonctionnement et création des vôtres
  8. Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
  9. Maîtriser la gestion d'exceptions Java : try, catch, finally, throw et throws expliqués