Manipulation de l'exception Python

Manipulation de l'exception Python

Introduction

Python vous fera savoir quand vous vous trompez de syntaxe. Il échouera immédiatement et ne permettra pas à votre programme d'exécuter.

Qu'en est-il lorsque votre code a un type de problème différent? Ceux-ci sont appelés exceptions, et ils ont tendance à être plus difficiles à attraper. C'est à vous de reconnaître les situations où Hey pourrait venir les attraper pour empêcher votre programme de s'écraser complètement.

Imaginez un scénario où vous avez besoin d'une entrée utilisateur. Voulez-vous que votre programme s'écrase chaque fois qu'un utilisateur est maltrant quelque chose ou entre quelque chose d'erreur? C'est loin d'être idéal. Puisque vous savez qu'il pourrait y avoir un problème là-bas, vous pouvez dire à Python d'en chercher un et de récupérer gracieusement.

Essayez de sauf

Lorsque vous savez qu'il y a une chance qu'une exception apparaisse, vous demandez à Python d'essayer le morceau de code et de rechercher une exception. Jetez un œil à cela dans le contexte de l'exemple de numéro avant.

essayez: numéro = int (entrée ("entrez n'importe quel nombre:")) sauf: imprimer ("Cela n'a pas fonctionné…") 

Maintenant, au lieu de vous écraser, votre programme se poursuivra, même si l'utilisateur entre des ordures.

Vous pouvez également dire à Python exactement quel type d'exception à rechercher. Dans ce cas, ce serait un Value Enerror.

essayez: numéro = int (entrée ("entrez n'importe quel nombre:")) sauf ValueError: print ("Vous n'avez pas saisi un numéro!") 

Si Python sait quel type d'exception il recherche, vous pouvez lui dire comment répondre en conséquence.

Faire votre propre

Vous pouvez faire vos propres exceptions en les écrivant comme des cours qui héritent du Exception classe de base ou l'une des autres classes d'exception.

classe NewException (exception): passer 

Vous devez intégrer dans votre programme comment utiliser vos exceptions personnalisées.

Élever des exceptions

Il y a une option pour lever manuellement des exceptions avec augmenter.

Essayez: élever NewException sauf NewException: Print ("Il a échoué comme prévu!") 

Multiples sauts

Si vous vous attendez à ce qu'il y ait plus d'une exception, vous pouvez construire des multiples avec essayer. Commencez par faire quelques exceptions personnalisées.

Classe Exceptiona (exception): passez la classe ExceptionB (Exception): Pass 

Maintenant, utilisez-les avec essayer.

Essayez: Richer ExceptionB sauf (exceptiona, exceptionB): imprimer ("c'était soit A ou B") 

Bien sûr, ce n'est pas le meilleur car dans un scénario réel, vous ne sauriez pas quelle exception s'est réellement produite.

Essayez d'utiliser des clauses séparées à la place.

Essayez: River ExceptionB sauf exceptiona: print ("exceptiona s'est produit") sauf exceptionB: imprimer ("ExceptionB s'est produit") sauf: imprimer ("quelque chose d'autre s'est produit ...") 

Le troisième sauf agit pour assister à toute autre exception. C'est le comportement par défaut lorsqu'une exception spécifique n'est pas donnée.

D'autre et enfin

Il y a deux clauses supplémentaires pour gérer ce qui se passe après la gestion des exceptions. Ils aident votre code à répondre aux exceptions.

Le autre La clause vous permet d'exécuter du code uniquement si une exception n'a pas été soulevée.

essayez: numéro = int (entrée ("entrez n'importe quel nombre:")) sauf ValueError: print ("Vous n'avez pas saisi un numéro!") Sinon: imprimer (numéro ** 2) 

Vous voulez seulement essayer d'effectuer une opération sur le numéro si l'on est entré.

Le enfin Cause fonctionnera indépendamment des exceptions. Il fonctionnera toujours à la fin du essayer bloc.

essayez: numéro = int (entrée ("entrez n'importe quel nombre:")) sauf ValueError: print ("Vous n'avez pas saisi un numéro!") Sinon: imprimer (numéro ** 2) Enfin: Print (" Cela fonctionnera toujours.") 

Réflexions de clôture

Il est important de comprendre ce qui peut mal tourner avec vos programmes. Il est tout aussi important de savoir que la chose va mal. En tenant compte des exceptions, vous pouvez rendre votre code aussi stable que possible et ne pas frustrer vos utilisateurs.

Des exercices

  1. Créez un code qui soulève une exception non perdue.
  2. Utilisez un bloc d'essai pour gérer cette exception.
  3. Créer une classe d'exception personnalisée
  4. Élever cette exception personnalisée dans un bloc d'essai.
  5. Créez un bloc d'essai avec un morceau de code qui ne s'exécute que si une exception n'est pas augmentée.

Tutoriels Linux connexes:

  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à installer sur Ubuntu 20.04
  • Gestion de la saisie des utilisateurs dans les scripts bash
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Comment planter Linux
  • Comment utiliser ADB Android Debug Bridge pour gérer votre Android…
  • Tutoriel de débogage GDB pour les débutants
  • Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
  • Ubuntu 20.04 Guide
  • Système linux hung? Comment s'échapper vers la ligne de commande et…