Try-Except Instructions in Python

Try-Except Instructions in Python
«Lorsque vous écrivez du code dans Python, surtout si c'est un peu plus compliqué, vous êtes plus que susceptible de rencontrer des erreurs. Ainsi, la façon d'écrire un bon code est de gérer ces erreurs habilement. Nous devons nous assurer que nous pouvons tuer en douceur ces erreurs dans un autre itinéraire. Et donc, à cette fin, à Python, la déclaration d'essai à l'exception a été créée. L'énoncé d'essai à l'exception consiste en un bloc d'essai et un ou plusieurs sauf les blocs. Dans ce tutoriel, nous apprendrons la déclaration d'essai à l'exception."

Énoncé d'essai à l'exception

L'énoncé d'essai à l'exception ressemble à ceci:

essayer:
Code
sauf ExceptionName:
Code

Donc, nous avons l'instruction TRY, puis le code est placé là-bas; Ceci est le code principal que vous souhaitez exécuter. Ensuite, il y a la déclaration sauf avec un autre ensemble de codes, mais ce code est censé faire face à l'exception. Python tentera d'exécuter tout d'abord tout le code dans l'instruction TRY. Quand il n'y a pas d'erreur, alors tout se passe bien, et la déclaration sauf est simplement transmise (sautée). Si, en revanche, une exception se produit, alors Python vérifiera s'il correspond à l'exceptionName dans l'instruction Sauft. S'il correspond, il commencera à exécuter le code de l'instruction Sauft.

Exemple 1

principal.py
essayer:
y = (2/3)
imprimer (y)
Sauf ZerodivisionError comme erreur:
Imprimer ("Erreur:% S"% Erreur)
Print ("Cette déclaration est en dehors de la clause TRY-Except.")

Sortir:

0.666666666666666

Cette déclaration est en dehors de la clause TRY-Except.

Processus terminé avec le code de sortie 0

Alors ici, nous avons une déclaration d'essai à l'exception, puis un peu de code en dehors du bloc d'essai à l'exception. Parce que nous divisons 2 par 3 et qu'il nous donne un numéro valide, il exécutera l'instruction TRY, puis contournera la déclaration sauf - car il n'y a pas de ZerodivisionError. Une fois qu'il contourne la déclaration sauf, elle se poursuit avec le reste du programme et se termine en douceur. Le point de cet exemple est de montrer que la déclaration sauf peut être contournée.

Exemple n ° 2

principal.py
essayer:
y = (2/0)
imprimer (y)
Sauf ZerodivisionError comme erreur:
Imprimer ("Erreur:% S"% Erreur)

Sortir:

Erreur: Division par zéro

Processus terminé avec le code de sortie 0

Dans ce cas, dans le bloc d'essai, nous essayons de diviser 2 par 0 et d'attribuer la valeur à Y. Comme vous pouvez ou non le savoir, vous ne pouvez tout simplement pas diviser par 0, donc il y a un peu de problème ici. Étant donné que nous voulons être habiles à gérer les erreurs, nous avons décidé d'écrire un bloc sauf avec le nom d'exception de ZerodivisionError. Ce que cela fait, c'est attraper ZerodivisionError ou, en d'autres termes, division par zéro erreur et imprimer l'erreur. Alors qu'obtenons-nous? Une déclaration disant que vous ne pouvez tout simplement pas diviser par zéro. Mais le fait est que notre programme ne s'est pas écrasé! Il a plutôt souligné la faille.

Exemple n ° 3

principal.py
essayer:
file = "fichier.SMS"
f = ouvert (fichier, 'r')
Imprimer (F.lire())
Sauf ZerodivisionError comme erreur:
Imprimer (erreur)
sauf syntaxerror comme serror:
imprimer (serror)
sauf filenotfounderror comme ferror:
Imprimer (Ferror)

Sortir:

[Errno 2] Aucun fichier ou répertoire de ce type: «Fichier.SMS'

Processus terminé avec le code de sortie 0

Le point de cet exemple est simple - vous pouvez écrire autant d'exceptions que vous le souhaitez. Si vous pensez qu'il pourrait y avoir un filenotfounderror, vous l'ajoutez à la liste des erreurs. Cela signifie que lorsque Python essaie d'exécuter le bloc d'essai, il ne trouve pas le fichier, donc il quitte l'instruction TRY et recherche dans les instructions sauf pour voir si l'une d'entre elles correspond à l'erreur soulevée. Puisque le dernier correspond, il imprimera la ferror ou le filenotfounderror.

Exemple n ° 4

Dans ce cas, nous allons examiner un exemple qui prend ce format:

essayer:
Ensemble de codes 1
Ensemble de codes 2
sauf exceptionName1:
Ensemble de codes 3
sauf exceptionName2:
Ensemble de codes 4
sauf exceptionName3:
Ensemble de codes 5 Main.py
essayer:
file = "fichier.SMS"
f = ouvert (fichier, 'r')
Imprimer (F.lire())
y = (2/0)
imprimer (y)
Sauf ZerodivisionError comme erreur:
Imprimer (erreur)
sauf syntaxerror comme serror:
imprimer (serror)
sauf filenotfounderror comme ferror:
Imprimer (Ferror)

Sortir:

[Errno 2] Aucun fichier ou répertoire de ce type: «Fichier.SMS'

Processus terminé avec le code de sortie 0

Dans cet exemple particulier, nous avons deux erreurs - un filenotfounderror et une ZerodivisionError. Mais remarquez comment la première erreur est le filenotfounonerror. Alors que fait Python? Il commence à lire le code, l'instruction TRYA. Ici, la deuxième erreur est omise, et nous n'obtenons pas de ZerodivisionError.

Exemple n ° 5

principal.py
essayer:
x = '9'
Si x> 6:
Imprimer (x / 6)
Sauf ZerodivisionError comme erreur:
Imprimer (erreur)
sauf:
imprimer ("une autre erreur")

Sortir:

Une autre erreur

Processus terminé avec le code de sortie 0

Ainsi, dans cet exemple, il y avait un type EERROR car vous ne pouvez pas utiliser> entre une chaîne et un entier. Ainsi, le bloc d'essai est tenté, et lorsqu'il fait face à l'erreur de type, il va directement à la clause «Général» sauf et exécute cela. En d'autres termes, si vous voulez attraper des erreurs et que vous ne connaissez pas leurs noms, vous pouvez laisser la partie exception.

Le point de cet exemple est que vous pouvez utiliser l'instruction expressive sans nommer une erreur, et elle devrait, en théorie, prendre toute erreur lancée, mais elle n'est pas avisée! En d'autres termes, il suffit d'utiliser sauf sans exception, n'est pas vraiment conseillé.

Conclusion

La déclaration d'essai à l'exception est une bénédiction pour tous les programmeurs qui utilisent Python. L'énoncé d'essai à l'exception se compose de deux blocs ou plus. Le premier bloc est toujours le bloc de déclaration d'essai qui est rempli de code. Après quoi, vous pouvez ajouter un ou plusieurs sauf des blocs afin d'attraper des erreurs très spécifiques. Habituellement, vous devez également attribuer un nom à l'instruction Sauft (Ex: sauf ZerodivisionError); Cependant, si vous ne savez vraiment pas quel type d'erreurs vous rencontrerez, vous pouvez la laisser vide (ex: sauf). Quoi qu'il en soit, le meilleur de tous les programmeurs sauront ne pas faire des erreurs et ont donc tendance à utiliser moins de blocs sauf des blocs mais à chacun leur goût. Alors utilisez sagement la déclaration essai. N'oubliez pas que la programmation implique une compétence.

Codage heureux!