Gestion des exceptions dans Python

Gestion des exceptions dans Python
Lorsque nous exécutons n'importe quel 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 facile de connaître la raison de l'erreur. Dans toute programmation orientée objet, coup de passe ou try-tratch-finally Le bloc est utilisé pour gérer les erreurs et les afficher dans un format lisible qui est appelé traitement des exceptions. La façon dont la gestion des exceptions peut être effectuée dans le script Python est affichée dans ce tutoriel.

Syntaxe:

essayer:
bloc…
sauf exception:
gestionnaire…
autre:
bloc…
enfin:
bloc…

Ici, si une erreur se produit lors de l'exécution des instructions de essayer bloc alors une exception sera générée et lancera l'erreur à la correspondance sauf maître. 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 le bloc sera exécuté si aucune erreur ne se produit dans le essayer bloc. Les déclarations du enfin Le bloc sera exécuté si une erreur se produit ou non. Pour la manipulation des exceptions, en utilisant autre et enfin Les blocs ne sont pas essentiels. Différents types de manipulation des exceptions à Python sont expliqués dans la prochaine partie du tutoriel.

Exemple-1: Utilisation d'un seul bloc d'essai à l'exception pour valider les données numériques:

Cet exemple montre l'utilisation très simple de la gestion des exceptions dans Python. Dans le essayer Bloc, deux entrées seront tirées de 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 de la valeur numérique pour la deuxième entrée, le Value Enerror une exception sera générée par python3 et un message d'erreur personnalisé sera affiché à partir de sauf bloc.

#!/ usr / bin / env python3
# Définir le bloc d'essai
essayer:
# Prenez toutes les données en tant que chaîne
name = input ("Entrez votre nom: \ n")
# Prenez toutes les données numériques
Âge = int (entrée ("Entrez votre âge: \ n"))
# Imprimez les données formatées avec le nom et l'âge
Imprimer ("Hello% s, vous avez% s Years Years." %(nom Age))
# gérer les erreurs d'entrée
Sauf (ValueError):
# Imprimer le message d'erreur personnalisé
Imprimer ("Mauvaise entrée! Vous devez taper un nombre comme votre âge.")

Sortir:

Le script est exécuté deux fois dans la sortie suivante avec la mauvaise entrée et l'entrée correcte. La première fois, lorsque le type d'utilisateur 'Trente et un' comme valeur d'âge pour la deuxième entrée qui prend la valeur numérique, puis un Value Enerror est généré et le message d'erreur s'affiche à partir du bloc sauf. 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 sauf pour gérer plusieurs erreurs:

Comment vous pouvez utiliser plusieurs sauf de bloc pour gérer plusieurs erreurs est affiché dans cet exemple. Deux types d'erreurs seront gérés dans ce script. Un nom de fichier est pris comme entrée de l'utilisateur pour lire. Si le fichier n'existe pas, il générera un ioerror exception et si le fichier existe mais vide, il augmentera une exception personnalisée. Pour cela, deux blocs sauf sont utilisés dans ce script. Quand aucune des erreurs ne se produit, le contenu du fichier sera affiché.

#!/ usr / bin / env python3
# Module d'importation du système d'exploitation
Importer un système d'exploitation
# Définir le bloc d'essai
essayer:
# Prenez le nom de fichier comme entrée
FileName = Input ('Entrez un nom de fichier \ n')
# Ouvrez le fichier pour la lecture
file_handler = open (nom de fichier)
# Définissez le Ponter de recherche à 0 à la fin du fichier
file_handler.chercher (0, OS.Seek_end)
# Lisez la taille du fichier en octets
size = file_handler.dire()
# Imprimez le contenu du fichier et le nombre de caractères du fichier
if (taille> 0):
# Définissez le ponter sur le début du fichier
file_handler.chercher (0)
# Lire et stocker le contenu du fichier dans une variable
file_content = file_handler.lire()
print ("\ n le contenu du fichier ci-dessous \ n")
print (file_content)
Imprimer ("La taille du fichier est en% D Taille"%)
autre:
# Lever l'exception si le fichier est vide
Soulever une exception («Le fichier n'a pas de contenu.')
# Imprimez le message d'erreur si le fichier n'existe pas
sauf ioerror comme erreur:
Imprimer (erreur)
# Imprimez le message d'erreur si le fichier est vide
sauf exception comme e:
imprimer ('Erreur:% s'% e)
# Imprimez le message s'il n'y a pas d'erreur
autre:
imprimer («aucune erreur se produit»)

Sortir:

Le script est exécuté trois fois. La première fois, un nom de fichier est donné qui n'existe pas et la sortie montre 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 affiche le contenu du fichier.

Exemple-3: utilisation du bloc d'essai à l'exception finalement pour gérer l'erreur de division

L'exemple montre l'utilisation d'un bloc d'essai à l'exception finalement pour gérer l'erreur de division. Deux valeurs numériques seront prises en entrée et diviseront la première entrée par deuxième entrée dans le bloc d'essai. Deux types d'erreurs peuvent se produire ici. L'un est Value Enerror Lorsque l'utilisateur tapera n'importe quelle valeur sans numéro et qu'un autre est Zérodivisionerror Lorsque l'utilisateur prendra 0 comme deuxième entrée.

#!/ usr / bin / env python3
# Définir le bloc d'essai
essayer:
# Entrez deux numéros de flotteur
n1 = float (entrée ('Entrez un nombre \ n'))
n2 = float (entrée ('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:
Impression ("Le résultat de la division est% f"% division)
# Imprimer le message si une erreur se produit ou non
enfin:
imprimer ("la fin")

Sortir:

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

Conclusion:

Ce tutoriel montre le processus de gestion des exceptions de base dans Python3 pour les nouveaux utilisateurs de Python. Les lecteurs pourront comprendre ce qui est une gestion des exceptions et comment s'appliquer dans Python Script après avoir pratiqué les exemples ci-dessus.