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 :
- Essai
- capture
- enfin
- 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.