Gestion des exceptions Python :essayer, attraper, enfin et relancer [Exemple]
Qu'est-ce qu'une gestion des exceptions en 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. En langage Python, les exceptions se déclenchent automatiquement en cas d'erreur, 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 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.
Dans ce tutoriel de manipulation exceptionnelle de Python, vous apprendrez :
- Qu'est-ce qu'une exception en Python ?
- Exemples courants d'exception
- Pourquoi utiliser les exceptions ?
- Règles d'exception
- Mécanisme de gestion des exceptions Python
- Instruction Python Try
- Instruction Python Catch
- Raise Statement en Python
- Erreurs Python importantes
- Autres exceptions Python importantes
- Erreur et exceptions
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 utiliser les 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 souvenir de ce que le programme attend.
- Cela clarifie le code et améliore la lisibilité.
- Vous permet de stimuler les conséquences car la gestion des erreurs a lieu à un endroit et d'une manière.
- Une exception est une méthode pratique pour gérer les messages d'erreur.
- En Python, vous pouvez lever une exception dans le programme en utilisant la méthode raise exception.
- Le déclenchement d'une exception vous aide à interrompre l'exécution du code en cours et renvoie l'exception à l'attente jusqu'à ce qu'elle soit traité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 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 lors d'une tentative d'exécution.
- Les erreurs détectées lors de l'exécution sont appelées des exceptions et ne sont pas inconditionnellement fatales.
Mécanisme de gestion des exceptions Python
La gestion des exceptions est gérée par les 5 mots clés suivants :
- essayer
- attraper
- enfin
- lancer
Instruction d'essai Python
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 contient 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.
Au cas où, si une exception se produit dans une suite try, la suite try expire et le contrôle du programme est transféré au gestionnaire correspondant except après la suite try.
Syntax: try: statement(s)
La déclaration de capture
Les blocs catch prennent un argument à la fois, qui est le type d'exception qu'ils sont susceptibles d'attraper. Ces arguments peuvent aller d'un type spécifique d'exception qui peut varier à 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 que le bloc catch gère.
- 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.
Exemple :
try } catch (ArrayIndexOutOfBoundsException e) { System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) { System.err.printin("Caught second " + e.getMessage()); }
Enfin, déclaration en Python
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 KeyboardInterrupt finally: print 'welcome, world!' Output Welcome, world! KeyboardInterrupt
Enfin, la clause est exécutée avant l'instruction try.
Raise Statement 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 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 de l'exception est toujours aucune.
Exemple :
Une exception Python peut être n'importe quelle valeur telle qu'une chaîne, une classe, un nombre ou un 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.
Erreurs Python importantes
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 levé lorsque vous essayez d'importer un module qui n'est pas présent. Ce genre d'exception se produit si vous avez fait une erreur de frappe dans le nom du module ou le module qui n'est pas présent dans le chemin standard. |
Erreur d'index | Une IndexError est levée lorsque vous essayez de faire référence à une séquence qui est hors limites. |
Erreur de clé | Lorsqu'une clé spécifique est introuvable dans un dictionnaire, une exception KeyError est déclenchée. |
Erreur de nom | 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. |
ValueErreur | 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 de type correct mais qui n'a pas de valeur appropriée. |
EOFerror | Ce type d'erreur se produit lorsqu'une des fonctions intégrées (input() ou raw_input()) atteint une condition EOF sans lire aucune donnée. |
ZeroDivisonError | Ce type d'erreur est généré lors de la division ou du module par zéro 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é lorsqu'il y a une erreur dans la syntaxe Python. |
Erreur d'indentation | Cette erreur est générée lorsque l'indentation n'est pas correctement définie |
Autres exceptions Python importantes
Exception | Description |
---|---|
Exception Arithmétique | Erreur arithmétique, comme diviser par zéro. |
Exception ArraylndexOutOfBounds | 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 un fil déverrouillé. |
MlegalStateException | L'environnement ou l'application est dans un état incorrect. |
ClassNotFoundException | Classe introuvable. |
CloneNotSupportedException | Essayer de cloner un objet qui n'implémente pas l'interface Cloneable. |
Exception d'accès illégal | L'accès à une classe est refusé. |
Exception d'instanciation | Se produit lorsque vous tentez de créer un objet d'une interface ou d'une classe abstraite. |
CloneNotSupportedException | Essayer de cloner un objet qui n'implémente pas l'interface. |
Erreur vs Exceptions
Erreur | 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 qui 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 : 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'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 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 contient une ou plusieurs clauses.
- Les blocs catch prennent un argument à la fois, qui est le type d'exception qu'ils sont susceptibles d'attraper.
- L'instruction raise spécifie un argument qui initialise l'objet exception.
- Enfin, le bloc s'exécute toujours, qu'une exception soit levée ou non.
Python