Python AssertionError

Python Assertionerror



Lorsqu'un programme Python rencontre une condition inattendue lors de son exécution, le programme interrompt l'exécution et renvoie une exception. En Python, les exceptions et les erreurs de syntaxe sont les deux principales catégories d'erreurs. Lorsqu'un morceau de code Python dont la syntaxe est valide crée une erreur, on parle de génération d'une exception/erreur. Le message d'erreur de la dernière ligne définit le type précis de l'exception et fournit une description pour faciliter le débogage, et une flèche pointe vers la ligne ou l'emplacement où l'exception s'est produite. La détection et la gestion des exceptions sont essentielles pour éviter un plantage soudain du programme. Utilisez une autre manière d'exécuter le code. Par exemple, lorsque l'exception spécifiée se produit. Ce tutoriel discutera de l'AssertionError et comment vous pouvez le résoudre en Python.

Qu'est-ce qu'une AssertionError en Python ?

Les erreurs d'assertion sont un concept de programmation qui se produit lorsqu'un programmeur écrit ou crée un bloc de code utilisé pour déclarer un critère ou une condition à satisfaire avant l'exécution du module. Comme toute erreur Python, le contrôle est transféré à la ligne de code suivante si la condition spécifiée lors de l'assertion a été déclarée vraie. S'il est faux, en revanche, une erreur ou une exception est générée et le programme est arrêté. L'instruction assert peut être utilisée dans divers langages de programmation avec leurs syntaxes spécifiques car elle est indépendante du langage. C'est une sous-classe ou une instance de la classe Exception. Python AssertionError a la syntaxe suivante :

Syntaxe: condition d'assertion, error_message (facultatif)







Exemple

Nous entrerons l'âge d'une personne comme entrée, et s'il est inférieur à zéro, la console générera une erreur d'assertion.





Maintenant, que se passe-t-il si nous entrons dans un âge inférieur à 0 ?





Le débogage de votre code à l'aide de cette méthode est plus simple, ce qui facilite la recherche d'erreurs et la correction des bogues dans le programme.



Comment fonctionne AssertionError en Python

Le langage Python inclut une instruction assert qui peut être utilisée pour générer des messages d'erreur simples avec des assertions logiques. Lorsque l'instruction d'assertion échoue, une 'exception' AssertionError est déclenchée. En Python, les classes d'exception sont dérivées de la classe BaseException. La classe BaseException, qui est également la classe de base de la classe AssertionError, est celle dont dérive la classe Exception. Il doit toujours y avoir un code de gestion des exceptions approprié pour gérer l'échec d'une instruction assert chaque fois qu'elle est utilisée. Le gestionnaire d'exceptions par défaut de Python imprime le message d'erreur écrit par le programmeur, mais l'erreur peut également être gérée ou résolue sans message d'erreur.

Implémenter AssertionError en Python

Voici plusieurs exemples d'AssertionError en Python :

Exemple

Dans cet exemple, nous allons écrire un programme Python pour afficher une AssertionError dans un programme qui trouve l'aire d'un cercle.

La valeur du rayon 'r' est transmise en tant qu'entrée à une fonction du programme précédent qui est créée pour trouver l'aire du cercle. L'instruction assert est ensuite utilisée pour déterminer si la valeur fournie ou le rayon 'r' est inférieur à zéro, et si une valeur négative lui est fournie, une exception sera levée. L'aire du cercle sera renvoyée en fonction de la valeur du rayon 'r' fournie à la fonction. Tout d'abord, la fonction est exécutée avec une valeur de r égale à 3. La fonction est ensuite exécutée avec la valeur 2,5. L'AssertionError est levée lorsque nous utilisons une valeur négative de 'r', c'est-à-dire '-1'.

Essayons un autre exemple pour afficher l'occurrence d'une erreur d'assertion.

Exemple

Dans cet exemple, le programme déterminera si la valeur du dénominateur est différente de zéro.

Le message d'erreur de l'erreur d'assertion s'affiche dans le programme précédent. Nous avons créé deux variables (a et b), et des valeurs entières spécifient les variables. La deuxième variable, c'est-à-dire b, est ensuite testée pour voir si elle n'est pas égale à 0 à l'aide de l'instruction assert. Sinon spécifié, le message d'erreur est imprimé. Sinon, le résultat de la division du premier nombre par la seconde valeur s'affiche. Dans l'image précédente, la sortie du programme est affichée.

Applications de AssertionError

Les autres utilisations bénéfiques de l'erreur d'assertion incluent :

  • L'assertion aide à évaluer les valeurs des paramètres
  • Les assertions aident à surveiller le type d'entrée et à déterminer si cette valeur est valide
  • De plus, les assertions aident à identifier si un autre développeur de code utilise une interface à mauvais escient
  • Les assertions aident à surveiller en permanence la sortie du programme

Comment éviter les erreurs d'assertion en Python

  1. L'indicateur -O dans un programme Python peut être utilisé pour désactiver chaque instruction d'assertion. Il est important de garder à l'esprit que les instructions qui suivent une instruction d'assertion ne seront pas exécutées si nous désactivons les instructions d'assertion.
  2. La variable d'environnement peut également définir un indicateur pour désactiver les instructions d'assertion. Tous les processus et applications qui utilisent ou héritent de l'environnement sont impactés dans cette situation.
  3. En Python, l'approche la plus simple pour éviter les erreurs d'assertion consiste à les gérer manuellement. Si nous nous assurons que le flux de contrôle du programme est détourné de sorte qu'il n'accède pas aux instructions d'assertion, il n'y a aucune chance d'erreurs d'assertion.

Gestion de l'AssertionError

Outre l'instruction d'assertion, nous pouvons également gérer l'erreur d'assertion en utilisant les méthodes suivantes :

Gestion de l'erreur d'assertion à l'aide des blocs Try-Except

L'instruction assert détermine si les valeurs sont égales. Le bloc try génère l'erreur AssertionError car ces entiers ne sont pas égaux. La commande print est exécutée une fois que le bloc except a intercepté l'exception. Ici, la sortie de l'instruction d'impression du bloc d'exception est affichée. Le mot-clé raise peut être utilisé pour relancer l'erreur dans le bloc except afin que nous puissions déterminer la source de l'exception. Lorsqu'une exception se produit, le mot clé 'raise' génère une erreur et met fin au programme. Cela aide à maintenir ou à conserver un enregistrement/une trace de l'exception existante.

Gérer l'AssertionError à l'aide du module de traceback

Lorsque le code contient plusieurs déclarations assert, le module traceback aide à identifier la source exacte de l'erreur.

En utilisant le module traceback, notre déclaration d'impression peut être écrite avec des espaces réservés {}.

De plus, nous pouvons définir d'autres variables pour stocker la position de la ligne, le nom du fichier, le nom de la méthode, ainsi que le texte/message où l'exception s'est produite.

L'objet de trace est appelé 'tb'. Nous utilisons deux espaces réservés : un pour le texte et un pour la position de la ligne dans l'instruction d'impression.

Les trois composants de l'instruction 'raise' (exc_type, exc_traceback et exc_value) sont renvoyés par la fonction sys.exc_info().

Gérer l'AssertionError à l'aide de l'instruction d'impression

Pour gérer manuellement une exception, nous pouvons utiliser l'instruction 'print' à l'intérieur du bloc except.

L'instruction d'impression imprime tout message d'erreur saisi par l'utilisateur. Avec cette méthode, une erreur technique ne sera pas un problème pour l'utilisateur.

Au lieu d'une erreur, un bref message s'affiche.

Conclusion

Dans cet article, nous avons d'abord vu l'introduction d'exceptions en Python. Nous avons discuté d'AssertionError, de son fonctionnement et de la manière dont nous pouvons implémenter AssertionError en Python. Nous avons expliqué plusieurs avantages d'AssertionError et comment nous pouvons les éviter. Dans la dernière section de cet article, nous avons vu comment gérer l'AssertionError en Python à l'aide des blocs Try-Except, du module de suivi et de l'instruction d'impression.