Python

Gestion des exceptions en Python

Gestion des exceptions en Python
Lorsque nous exécutons un code contenant une erreur, l'erreur s'affiche dans la sortie en arrêtant l'exécution du programme. Certaines erreurs peuvent ne pas être reconnues par les utilisateurs et créer une situation indésirable pour eux. Mais si l'erreur peut être affichée dans un format compréhensible pour les utilisateurs, il leur est alors facile de connaître la raison de l'erreur. Dans toute programmation orientée objet, essayer-attraper ou alors essayer-attraper-enfin block est utilisé pour gérer les erreurs et les afficher dans un format lisible appelé gestion des exceptions. Comment la gestion des exceptions peut être effectuée dans le script Python est montré dans ce tutoriel.

Syntaxe :

essayer:
bloquer…
sauf exception :
gestionnaire…
autre:
bloquer…
finalement:
bloquer…

Ici, si une erreur se produit lors de l'exécution des instructions de essayer bloquer alors une exception sera générée et renverra l'erreur au correspondant sauf gestionnaire. Plusieurs erreurs peuvent être générées en un seul essayer bloc et ensuite vous devez écrire plusieurs sauf gestionnaires.  Les déclarations du autre bloc sera exécuté si aucune erreur ne se produit dans le essayer bloquer. Les déclarations du finalement le bloc sera exécuté si une erreur se produit ou ne se produit pas. Pour la gestion des exceptions, en utilisant autre et finalement les blocs ne sont pas indispensables. Les différents types de gestion des exceptions en python sont expliqués dans la partie suivante du tutoriel.

Exemple-1 : Utilisation d'un seul bloc try-except pour valider des données numériques :

Cet exemple montre l'utilisation très simple de la gestion des exceptions en Python. Dans le essayer bloc, deux entrées seront prises par l'utilisateur, l'une est une valeur de chaîne et une autre est une valeur numérique.  Si l'utilisateur tape une valeur de chaîne à la place d'une valeur numérique pour la deuxième entrée, le Erreur de valeur exception sera générée par python3 et un message d'erreur personnalisé sera affiché à partir de sauf bloquer.

#!/usr/bin/env python3
# Définir le bloc try
essayer:
# Prend n'importe quelle donnée sous forme de chaîne
name = input("Entrez votre nom : \n")
# Prenez n'importe quelle donnée numérique
age = int(input("Entrez votre âge : \n"))
# Imprimez les données formatées avec le nom et l'âge
print("Bonjour %s, vous avez %s ans." %(nom Age))
# gérer les erreurs de saisie
sauf (ValueError) :
# Imprimer un message d'erreur personnalisé
print("Mauvaise saisie! Vous devez taper un nombre selon votre âge.")

Production:

Le script est exécuté deux fois dans la sortie suivante avec la mauvaise entrée et la bonne entrée. La première fois, lorsque l'utilisateur tape 'Trente et un' comme valeur d'âge pour la deuxième entrée qui prend une valeur numérique puis un Erreur de valeur est généré et le message d'erreur est affiché à partir du bloc except. La deuxième fois, aucune erreur n'est générée pour les valeurs d'entrée correctes.

Exemple-2 : Utilisation de plusieurs blocs except pour gérer plusieurs erreurs :

Comment vous pouvez utiliser plusieurs sauf bloc pour gérer plusieurs erreurs est montré dans cet exemple.  Deux types d'erreurs seront traités dans ce script. Un nom de fichier est pris comme entrée de l'utilisateur pour la lecture. Si le fichier n'existe pas, il générera une IOError exception et si le fichier existe mais vide alors il lèvera une exception personnalisée. Pour cela, deux blocs except sont utilisés dans ce script. Lorsqu'aucune erreur ne se produit, le contenu du fichier sera affiché.

#!/usr/bin/env python3
# Importer le module du système d'exploitation
importer le système d'exploitation
# Définir le bloc try
essayer:
# Prend le nom du fichier en entrée
nom de fichier = input('Entrez un nom de fichier\n')
# Ouvrir le fichier pour lecture
file_handler = open(nom de fichier)
# Définit le ponteur de recherche de 0 à la fin du fichier
gestionnaire_de_fichier.chercher(0, os.SEEK_END)
# Lire la taille du fichier en octets
taille = gestionnaire_fichier.raconter()
# Imprimer le contenu du fichier et le nombre de caractères du fichier
si (taille > 0):
# Placer le ponter au début du fichier
gestionnaire_de_fichier.chercher(0)
# Lire et stocker le contenu du fichier dans une variable
contenu_fichier = gestionnaire_fichier.lis()
print("\nLe contenu du fichier donné ci-dessous\n")
print(file_content)
print("La taille du fichier est de %d octets" %size)
autre:
# Lever une exception si le fichier est vide
raise Exception('Le fichier n'a pas de contenu.')
# Imprimer le message d'erreur si le fichier n'existe pas
sauf IOError comme erreur :
imprimer (erreur)
# Imprimer le message d'erreur si le fichier est vide
sauf exception comme e :
print('Erreur :%s' %e)
# Imprimer le message s'il n'y a pas d'erreur
autre:
print('Aucune erreur ne se produit')

Production:

Le script est exécuté trois fois. La première fois, un nom de fichier qui n'existe pas est donné et la sortie affiche un message IOError. La deuxième fois, un nom de fichier est donné qui existe mais n'a pas de contenu et la sortie affiche un message personnalisé. La troisième fois, un nom de fichier est donné qui existe et contient du texte. La sortie montre le contenu du fichier.

Exemple-3 : Utilisation du bloc try-except-finally pour gérer l'erreur de division

L'exemple montre l'utilisation d'un bloc try-except-finally pour gérer l'erreur de division. Deux valeurs numériques seront prises en entrée et diviseront la première entrée par la deuxième entrée dans le bloc try. Deux types d'erreurs peuvent se produire ici. L'un est Erreur de valeur lorsque l'utilisateur tapera n'importe quelle valeur sans numéro et une autre est ZeroDivisionError quand l'utilisateur prendra 0 comme deuxième entrée.

#!/usr/bin/env python3
# Définir le bloc try
essayer:
# Entrez deux nombres flottants
n1 = float(input('Entrez un nombre\n'))
n2 = float(input('Entrez un nombre\n'))
# Divisez ces nombres
division = n1 / n2
# Gérer les erreurs
sauf (ZeroDivisionError, ValueError) :
print("Divisé par zéro erreur ou La valeur n'est pas un nombre")
# Imprimer le message si aucune erreur ne se produit
autre:
print("Le résultat de la division est %f" %division )
# Imprimer le message si une erreur se produit ou ne se produit pas
finalement:
print("La fin")

Production:

Ici, le script est exécuté deux fois avec les deux entrées correctes et avec la deuxième entrée à 0. Ainsi, la deuxième exception est générée et affiche le message d'erreur.

Conclusion:

Ce tutoriel montre le processus de base de gestion des exceptions en python3 pour les nouveaux utilisateurs de python. Les lecteurs seront en mesure de comprendre ce qu'est la gestion des exceptions et comment l'appliquer dans un script python après avoir pratiqué les exemples ci-dessus.

Comment inverser le sens de défilement de la souris et des pavés tactiles dans Windows 10
Souris et Pavé tactiles rendent non seulement l'informatique facile, mais plus efficace et moins chronophage. Nous ne pouvons pas imaginer une vie san...
Comment changer la taille, la couleur et le schéma du pointeur et du curseur de la souris sous Windows 10
Le pointeur et le curseur de la souris dans Windows 10 sont des aspects très importants du système d'exploitation. Cela peut également être dit pour d...
Moteurs de jeux gratuits et open source pour le développement de jeux Linux
Cet article couvrira une liste de moteurs de jeux gratuits et open source qui peuvent être utilisés pour développer des jeux 2D et 3D sur Linux. Il ex...