Vidéo: 6.7 Conception d'exceptions personnalisées 2024
Python fournit une foule d'exceptions standard que vous devriez utiliser autant que possible. Ces exceptions sont incroyablement flexibles et vous pouvez même les modifier au besoin (dans des limites raisonnables) pour répondre à des besoins spécifiques.
Cependant, vous devez parfois créer une exception personnalisée car aucune des exceptions standard ne fonctionnera. Peut-être que le nom de l'exception ne dit pas au spectateur le but que l'exception sert. Vous pouvez avoir besoin d'une exception personnalisée pour un travail de base de données spécialisé ou lorsque vous travaillez avec un service.
Cet exemple montre une méthode rapide pour créer vos propres exceptions. Pour effectuer cette tâche, vous devez créer une classe qui utilise une exception existante comme point de départ. Pour rendre les choses un peu plus faciles, cet exemple crée une exception basée sur la fonctionnalité fournie par l'exception ValueError.
L'avantage de l'utilisation de cette approche est que cette approche indique à quiconque vous suit précisément quelle est l'addition à l'exception ValueError; En outre, il rend l'exception modifiée plus facile à utiliser.
-
Ouvre une fenêtre de fichier Python.
Vous voyez un éditeur dans lequel vous pouvez taper l'exemple de code.
-
Tapez le code suivant dans la fenêtre - en appuyant sur Entrée après chaque ligne:
class CustomValueError (ValueError): def __init __ (self, arg): self. strerror = arg soi. args = {arg} try: raise CustomValueError ("Valeur doit être comprise entre 1 et 10.") excepté CustomValueError comme e: print ("CustomValueError Exception!", e.strerror)
Cet exemple place la même erreur dans les deux strerror et args de sorte que le développeur a accès à l'un ou l'autre (comme cela se produirait normalement).
Le code commence par créer la classe CustomValueError qui utilise la classe d'exception ValueError comme point de départ. La fonction __init __ () fournit les moyens de créer une nouvelle instance de cette classe. Considérez la classe comme un plan et l'instance comme le bâtiment créé à partir du plan.
Notez que l'attribut strerror a la valeur qui lui est assignée directement, mais args la reçoit en tant que tableau. Le membre args contient normalement un tableau de toutes les valeurs d'exception, c'est donc une procédure standard, même si args ne contient qu'une seule valeur comme c'est le cas maintenant.
Le code d'utilisation de l'exception est considérablement plus facile que de modifier ValueError directement. Tout ce que vous faites est d'appeler raise avec le nom de l'exception et les arguments que vous voulez passer, le tout sur une ligne.
-
Choisissez Exécuter → Exécuter le module.
Vous voyez une fenêtre Python Shell ouverte.L'application affiche la séquence de lettres, avec le numéro de lettre.