Gestion des exceptions Python: essayez, attrapez, enfin

Table des matières:

Anonim

Qu'est-ce qu'une exception en Python?

Une exception est une erreur qui se produit au moment de l'exécution d'un programme. Cependant, lors de 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 langage 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 se produit rarement. Lorsque la méthode n'est pas en mesure de gérer l'exception, elle est renvoyée à sa fonction appelante. Finalement, lorsqu'une exception est levée hors de la fonction principale, le programme se termine brusquement.

Dans ce tutoriel de manipulation exceptionnelle Python, vous apprendrez:

  • Qu'est-ce qu'une exception en Python?
  • Exemples courants d'exceptions
  • Pourquoi devriez-vous utiliser des exceptions?
  • Règles d'exceptions
  • Mécanisme de manutention exceptionnel
    • La déclaration Try
    • La déclaration catch
    • La déclaration Raise
  • Erreurs Python importantes
  • Autres exceptions importantes de Python
  • Erreur vs exceptions

Exemples courants d'exceptions:

  • Division par zéro
  • Accéder à un fichier qui n'existe pas.
  • Ajout de deux types incompatibles
  • Essayer d'accéder à un index inexistant d'une séquence
  • Suppression de la table du serveur de base de données déconnecté.
  • Retrait au guichet automatique supérieur au montant disponible

Pourquoi devriez-vous utiliser des exceptions?

Voici les raisons d'utiliser des exceptions en Python:

  • La gestion des exceptions vous permet de séparer le code de gestion des erreurs du code normal.
  • Une exception est un objet Python qui représente une erreur.
  • Comme pour les commentaires de code, les exceptions vous aident à vous rappeler ce que le programme attend.
  • Il clarifie le code et améliore la lisibilité.
  • Vous permet de stimuler les conséquences car la gestion des erreurs a lieu à un seul endroit et d'une seule manière.
  • Une exception est une méthode pratique pour gérer les messages d'erreur.
  • En Python, vous pouvez déclencher une exception dans le programme à l'aide de la méthode de levée d'exception.
  • Le fait de déclencher une exception vous aide à interrompre l'exécution du code en cours et à renvoyer l'exception en attente jusqu'à ce qu'elle soit gérée.
  • Traitement des exceptions pour les composants qui ne peuvent pas les gérer directement.

Règles d'exceptions

Voici quelques règles essentielles de gestion des exceptions Python:

  • Les exceptions doivent être des objets de classe
  • Pour les exceptions de classe, vous pouvez utiliser l'instruction try avec une clause except qui mentionne une classe particulière.
  • Même si une instruction ou une expression est syntaxiquement correcte, elle peut afficher une erreur lorsqu'une tentative est faite pour l'exécuter.
  • Les erreurs détectées lors de l'exécution sont appelées exceptions et ne sont pas inconditionnellement fatales.

Mécanisme de manutention exceptionnel

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

  1. essayer
  2. capture
  3. finalement
  4. lancer

La déclaration Try

Une instruction try inclut le mot-clé try, suivi de deux points (:) et d'une suite de code dans laquelle des exceptions peuvent se produire. Il comporte 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 cette instruction try spécifique.

Si une exception se produit dans une suite try, la suite try expire et le contrôle du programme est transféré vers le gestionnaire d'exception correspondant après la suite try.

Syntax:try:statement(s)

La déclaration catch

Les blocs de capture prennent un argument à la fois, qui est le type d'exception qu'il est susceptible d'attraper. Ces arguments peuvent aller d'un type d'exception spécifique qui peut être modifié à une catégorie d'exceptions fourre-tout.

Règles pour le bloc catch:

  • Vous pouvez définir un bloc catch en utilisant le mot clé catch
  • Le paramètre Catch Exception est toujours entre parenthèses
  • Il représente toujours le type d'exception qui capture les poignées de bloc.
  • Un code de gestion des exceptions est écrit entre deux {} accolades.
  • Vous pouvez placer plusieurs blocs catch dans un seul bloc try.
  • Vous ne pouvez utiliser un bloc catch qu'après le bloc try.
  • Tout le bloc catch doit être ordonné de la sous-classe à l'exception de la superclasse.

Exemple:

try}catch (ArrayIndexOutOfBoundsException e) {System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {System.err.printin("Caught second " + e.getMessage());}

Enfin bloquer

Enfin, le bloc s'exécute toujours, qu'une exception soit levée ou non. Le mot-clé final vous permet de créer un bloc de code qui suit un bloc try-catch.

Enfin, la clause est facultative. Il est destiné à définir les actions de nettoyage qui doivent être celles exécutées dans toutes les conditions.

try:raise KeyboardInterruptfinally:print 'welcome, world!'OutputWelcome, world!KeyboardInterrupt

Enfin, la clause est exécutée avant l'instruction try.

La déclaration Raise

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

Syntaxe:

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

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

Exemple:

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

Erreurs Python importantes

Type d'erreur Description
ArithmétiqueErreur ArithmeticError agit comme une classe de base pour toutes les exceptions arithmétiques. Il est déclenché pour les erreurs dans les opérations arithmétiques.
ImportError ImportError est déclenché lorsque vous essayez d'importer un module qui ne le présente pas. Ce type d'exception se produit si vous avez fait une erreur de frappe dans le nom du module ou dans le module qui n'est pas présent dans le chemin standard.
IndexError Un IndexError est déclenché lorsque vous essayez de faire référence à une séquence qui est hors de portée.
KeyError Lorsqu'une clé spécifique n'est pas trouvée dans un dictionnaire, une exception KeyError est déclenchée.
NameError Une NameError est déclenchée lorsqu'un nom est référencé dans un code qui n'existe jamais dans l'espace de noms local ou global.
ValueError Une erreur de valeur est déclenchée lorsqu'une fonction ou une opération intégrée reçoit un argument qui peut être du type correct mais qui n'a pas la valeur appropriée.
Erreur EOF Ce type d'erreur se produit lorsque l'une des fonctions intégrées (input () ou raw_input ()) atteint une condition EOF sans lire aucune donnée.
ZeroDivisonError Ce type d'erreur se produit lorsque la division ou le module par zéro a lieu pour tous les types numériques.
IOError- Ce type d'erreur se produit lorsqu'une opération d'entrée / sortie échoue.
erreur de syntaxe SyntaxErrors déclenchés lorsqu'il y a une erreur dans la syntaxe Python.
IndentationError Cette erreur se produit lorsque l'indentation n'est pas correctement définie

Autres exceptions importantes de Python

Exception Description
ArithmétiqueException Erreur arithmétique, telle que la division par zéro.
ArraylndexOutOfBoundsException L'index du tableau est hors limites.
ArrayStoreException L'affectation vous aide à l'élément de tableau d'un type incompatible.
ClassCastException Cast non valide
MlegalMonitorStateException Opération de surveillance illégale, comme attendre sur un thread déverrouillé.
MlegalStateException L'environnement ou l'application est dans un état incorrect.
ClassNotFoundException Classe introuvable.
CloneNotSupportedException Tentative de clonage d'un objet qui n'implémente pas l'interface clonable.
Accès illégal L'accès à une classe est refusé.
InstanciationException Se produit lorsque vous essayez de créer un objet d'une interface ou d'une classe abstraite.
CloneNotSupportedException Tentative de clonage d'un objet qui n'implémente pas l'interface.

Erreur vs exceptions

Erreur Des exceptions
Toutes les erreurs en Python sont du type non vérifié. Les exceptions incluent à la fois le type coché et non coché.
Des erreurs se produisent au moment de l'exécution, ce qui est inconnu du compilateur. Les exceptions peuvent être récupérées en les manipulant à l'aide de blocs try-catch.
Les erreurs sont principalement causées par l'environnement dans lequel une application s'exécute. L'application elle-même provoque des exceptions.
Exemples: OutofMemoryError Exemples: Exceptions vérifiées, exception SQL, NullPointerException, etc.

Résumé

  • Une exception est une erreur survenue lors de l'exécution d'un programme.
  • L'exception indique que, bien que l'événement puisse se produire, ce type d'événement se produit rarement.
  • Les exemples courants d'exceptions sont 1) Division par zéro, 2) Accès à un fichier qui n'existe pas, 3) Ajout de deux types incompatibles.
  • Une exception est un objet Python qui représente une erreur.
  • Une instruction try inclut le mot-clé try, suivi de deux points (:) et d'une suite de code dans laquelle des exceptions peuvent se produire. Il comporte une ou plusieurs clauses.
  • Les blocs de capture prennent un argument à la fois, qui est le type d'exception qu'il est susceptible d'attraper.
  • L'instruction rise spécifie un argument qui initialise l'objet d'exception.
  • Enfin, block s'exécute toujours, qu'une exception soit levée ou non.