Python Gestion des exceptions : try, except, finally, raise
โก Rรฉsumรฉ intelligent
Python La gestion des exceptions permet ร votre programme de rรฉagir aux erreurs d'exรฉcution au lieu de planter. Vous dรฉcouvrirez ici le fonctionnement des blocs try, except, finally et raise, l'importance des exceptions et les types d'erreurs intรฉgrรฉs les plus courants.

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.
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 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.
Exemple :
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 | L'erreur ImportError est levรฉe lorsque vous tentez d'importer un module absent. Ce type d'exception se produit si vous avez effectuรฉ une opรฉration incorrecte.ping erreur dans le nom du module ou module absent du 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 | Cela se produit lorsque vous tentez de crรฉer un objet d'interface ou d'abstracclasse t. |
| 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. |
