Python Gestion des exceptions : essayer, attraper, enfin et relancer [Exemple]

Qu'est-ce qu'une gestion des exceptions dans Python?

Une exception est une erreur qui se produit lors 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. Dans Python langage, les exceptions se déclenchent automatiquement en cas d'erreurs, ou elles peuvent être déclenchées et interceptées par votre code.

L'exception indique que, même si l'événement peut se produire, ce type d'événement se produit rarement. Lorsque la méthode n'est pas capable 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.

Exemples courants d'exception

  • 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 distributeur supérieur au montant disponible

Pourquoi devriez-vous utiliser des exceptions ?

Voici les raisons d'utiliser des exceptions dans Python:

  • La gestion des exceptions vous permet de séparer le code de gestion des erreurs du code normal.
  • Une exception est un Python objet ce 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.
  • In Python, vous pouvez déclencher une exception dans le programme en utilisant la méthode raise exception.
  • La génération d'une exception vous aide à interrompre l'exécution du code en cours et ramène l'exception à l'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'exception

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

  • 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'on tente de l'exécuter.
  • Les erreurs trouvées lors de l’exécution sont appelées exceptions et elles ne sont pas inconditionnellement fatales.

Python Mécanisme de gestion des exceptions

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

  1. Essai
  2. capture
  3. enfin
  4. renversement

Python Essayez la déclaration

Une instruction try comprend 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.

Lors de 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.

Dans le cas où une exception se produit dans une suite try, la suite try expire et le contrôle du programme est transféré au gestionnaire except correspondant qui suit la suite try.

Syntax:
try:
statement(s)

La déclaration catch

Les blocs catch acceptent un argument à la fois, ce qui correspond au type d’exception qu’ils sont susceptibles d’intercepter. Ces arguments peuvent aller d’un type spécifique d’exception pouvant être modifié à une catégorie fourre-tout d’exceptions.

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 géré par le bloc catch.
  • 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.
  • Tous les blocs catch doivent être classés de la sous-classe à l’exception de la superclasse.

Mise en situation :

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

Enfin, déclaration dans Python

Enfin, le bloc s'exécute toujours, qu'une exception soit levée ou non. Le mot-clé final 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 KeyboardInterrupt
finally:
    print 'welcome, world!'
Output
Welcome, world!
KeyboardInterrupt

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

Augmenter la déclaration dans 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 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 nulle.
Mise en situation :
A Python l'exception peut être n'importe quelle valeur comme une chaîne, une classe, un nombre ou un objet. La plupart de ces exceptions soulevées par Python core sont des classes avec un argument qui est une instance de la classe.

Important Python Erreurs

Type d'erreur Description
Erreur Arithmétique 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.
Erreur d'importation ImportError est déclenché lorsque vous essayez d'importer un module qui n'est pas présent. Ce type d'exception se produit si vous avez fait une erreur de frappe dans le nom du module ou si le module n'est pas présent dans le chemin standard.
Erreur d'index Une IndexErro est générée lorsque vous essayez de faire référence à une séquence hors de portée.
Erreur de clé Lorsqu'une clé spécifique n'est pas trouvée dans un dictionnaire, une exception KeyError est levée.
NomErreur Une NameError est levée lorsqu'un nom est mentionné dans un code qui n'existe jamais dans l'espace de noms local ou global.
Erreur de valeur Une erreur de valeur est générée lorsqu'une fonction ou une opération intégrée reçoit un argument qui peut être de type correct mais qui n'a pas de valeur appropriée.
EOFerreur 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.
ErreurDivisionZéro Ce type d'erreur se produit lorsque la division ou le module par zéro a lieu pour tous les types numériques.
Erreur IOEr- Ce type d'erreur se produit lorsqu'une opération d'entrée/sortie échoue.
erreur de syntaxe SyntaxErrors déclenché lorsqu'il y a une erreur dans Python syntaxe.
Erreur d'indentation Cette erreur se produit lorsque l'indentation n'est pas correctement définie

Autre important Python Exceptions

Exception Description
ArithmétiqueException Erreur arithmétique, telle que division par zéro.
ArraylndexOutOfBoundsException L'index du tableau est hors limites.
ArrayStoreException L'affectation vous aide à identifier l'élément de tableau d'un type incompatible.
ClassCastException Casting invalide
MlegalMonitorStateException Fonctionnement illégal du moniteur, comme attendre un fil de discussion déverrouillé.
MlegalStateException L'environnement ou l'application est dans un mauvais état.
ClassNotFoundException Classe introuvable.
CloneNotSupportedException Tentative de cloner un objet qui n'implémente pas l'interface Cloneable.
Exception d'accès illégal L'accès à un cours est refusé.
Exception d'instanciation Se produit lorsque vous tentez de créer un objet d'une interface ou d'une classe abstraite.
CloneNotSupportedException Tentative de cloner un objet qui n'implémente pas l'interface.

Erreur et exceptions

Erreur Exceptions
Toutes les erreurs dans Python sont du type non coché. Les exceptions incluent les types cochés et non cochés.
Des erreurs se produisent au moment de l'exécution et sont inconnues du compilateur. Les exceptions peuvent être récupérées en les gérant à 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 :
Erreur de mémoire insuffisante
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, même si l'événement peut se produire, ce type d'événement se produit rarement.
  • Des exemples courants d'exception 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 Python objet qui représente une erreur.
  • Une instruction try comprend 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 catch acceptent un argument à la fois, ce qui correspond au type d’exception qu’ils sont susceptibles d’intercepter.
  • L'instruction raise spécifie un argument qui initialise l'objet exception.
  • Enfin, block s'exécute toujours, qu'une exception soit levée ou non.