Python Assertion Error

Python Assertion Error



Wanneer een Python-programma tijdens het uitvoeren een onverwachte situatie tegenkomt, stopt het programma de uitvoering en retourneert het een uitzondering. In Python zijn uitzonderingen en syntaxisfouten de twee hoofdcategorieën van fouten. Wanneer een stuk Python-code dat syntactisch geldig is, een fout maakt, staat dit bekend als het genereren van een uitzondering/fout. Het foutbericht in de laatste regel definieert het exacte type uitzondering en biedt een beschrijving om te helpen bij het opsporen van fouten, en een pijl wijst naar de regel of locatie waar de uitzondering optrad. Het opvangen en beheren van uitzonderingen is cruciaal om een ​​plotselinge programmacrash te voorkomen. Gebruik een andere manier om de code uit te voeren. Bijvoorbeeld wanneer de opgegeven uitzondering optreedt. In deze tutorial wordt de AssertionError besproken en hoe je deze in Python kunt oplossen.

Wat is een AssertionError in Python?

Assertiefouten zijn een programmeerconcept dat optreedt wanneer een programmeur een codeblok schrijft of maakt dat wordt gebruikt om aan te geven dat aan een criterium of voorwaarde is voldaan voordat de module wordt uitgevoerd. Zoals elke Python-fout, wordt de besturing overgedragen naar de volgende regel code als de voorwaarde die is opgegeven toen de bewering waar werd verklaard. Als het echter onwaar is, wordt er een fout of uitzondering gegenereerd en wordt het programma gestopt. De assert-instructie kan in verschillende programmeertalen worden gebruikt met hun specifieke syntaxis omdat het onafhankelijk is van taal. Het is een subklasse of een instantie van de klasse Exception. Python AssertionError heeft de volgende syntaxis:

Syntaxis: bewering voorwaarde, error_message(optioneel)







Voorbeeld

We voeren de leeftijd van een persoon in als invoer, en als deze minder dan nul is, geeft de console een beweringsfout.





Wat als we een leeftijd invoeren die kleiner is dan 0?





Het opsporen van fouten in uw code met deze methode is eenvoudiger, waardoor het eenvoudiger wordt om fouten te vinden en bugs in het programma te corrigeren.



Hoe AssertionError werkt in Python

De Python-taal bevat een assert-instructie die kan worden gebruikt om eenvoudige uitvoer van foutmeldingen met logische beweringen te genereren. Wanneer de assertion-instructie mislukt, wordt een 'exception' AssertionError gegenereerd. In Python zijn de uitzonderingsklassen afgeleid van de BaseException-klasse. De klasse BaseException, die ook de basisklasse is van de klasse AssertionError, is waar de klasse Exception vandaan komt. Er moet altijd passende code voor het afhandelen van uitzonderingen zijn om het mislukken van een assert-instructie aan te pakken wanneer deze wordt gebruikt. De standaard uitzonderingshandler in Python drukt het door de programmeur geschreven foutbericht af, maar de fout kan ook worden afgehandeld of opgelost zonder een foutbericht.

AssertionError implementeren in Python

Hieronder volgen enkele voorbeelden van AssertionError in Python:

Voorbeeld

In dit voorbeeld zullen we een Python-programma schrijven om een ​​AssertionError weer te geven in een programma dat de oppervlakte van een cirkel vindt.

De waarde van de straal 'r' wordt als invoer doorgegeven aan een functie in het vorige programma dat is gemaakt om het gebied van de cirkel te vinden. De assert-instructie wordt vervolgens gebruikt om te bepalen of de geleverde waarde of straal 'r' onder nul is, en als er een negatieve waarde aan wordt gegeven, wordt een uitzondering gemaakt. Het gebied van de cirkel wordt geretourneerd op basis van de waarde van straal 'r' die aan de functie is geleverd. Eerst wordt de functie uitgevoerd met een waarde van r als 3. De functie wordt vervolgens uitgevoerd met de waarde 2.5. De AssertionError wordt verhoogd wanneer we een negatieve waarde van 'r' gebruiken, d.w.z. '-1'.

Laten we een ander voorbeeld proberen om het optreden van een Assertion-fout weer te geven.

Voorbeeld

In dit voorbeeld bepaalt het programma of de noemerwaarde niet nul is.

Het foutbericht van de bevestigingsfout wordt weergegeven in het vorige programma. We hebben twee variabelen gemaakt (a en b), en integerwaarden specificeren de variabelen. De tweede variabele, d.w.z. b, wordt vervolgens getest om te zien of deze niet gelijk is aan 0 met behulp van de assert-instructie. Anders wordt het foutbericht afgedrukt. Als dit niet het geval is, wordt het resultaat van het delen van het eerste getal door de tweede waarde weergegeven. In de vorige afbeelding wordt de uitvoer van het programma weergegeven.

Toepassingen van AssertionError

De andere nuttige toepassingen van beweringsfouten zijn onder meer:

  • Bewering helpt bij het evalueren van parameterwaarden
  • Beweringen helpen bij het controleren van het invoertype en of die waarde geldig is
  • Bovendien helpen beweringen bij het identificeren of een andere codeontwikkelaar een interface misbruikt
  • Beweringen helpen bij het continu monitoren van de output van het programma

Hoe we de beweringsfouten in Python kunnen vermijden

  1. De vlag -O in een Python-programma kan worden gebruikt om elke bewering uit te schakelen. Het is belangrijk om te onthouden dat de statements die na een assertion statement komen niet worden uitgevoerd als we de assertion statements uitschakelen.
  2. De omgevingsvariabele kan ook een vlag instellen om de assertion-statements uit te schakelen. Alle processen en applicaties die de omgeving gebruiken of erven, worden in deze situatie beïnvloed.
  3. In Python is de eenvoudigste manier om beweringsfouten te voorkomen, ze handmatig af te handelen. Als we ervoor zorgen dat de besturingsstroom van het programma wordt omgeleid zodat het geen toegang heeft tot de assert-statements, dan is er geen kans op assertieve fouten.

Omgaan met de beweringfout

Naast de beweringverklaring kunnen we de beweringfout ook op de volgende manieren afhandelen:

De beweringsfout afhandelen met behulp van de Try-Except-blokken

De assert-instructie bepaalt of de waarden gelijk zijn. Het try-blok roept de AssertionError-fout op omdat deze gehele getallen niet gelijk zijn. De printopdracht wordt uitgevoerd nadat het uitzonderingsblok de uitzondering heeft opgevangen. Hier wordt de uitvoer van de afdrukopdracht van het uitzonderingsblok weergegeven. Het zoekwoord 'raise' kan worden gebruikt om de fout in het blok 'behalve' opnieuw te verhogen, zodat we de bron van de uitzondering kunnen bepalen. Als er een uitzondering optreedt, veroorzaakt het zoekwoord 'verhogen' een fout en wordt het programma beëindigd. Het helpt bij het bijhouden of bijhouden van de bestaande uitzondering.

De AssertionError afhandelen De traceback-module gebruiken

Wanneer de code meerdere assert-statements bevat, helpt de traceback-module bij het identificeren van de exacte bron van de fout.

Met behulp van de traceback-module kan ons printstatement worden geschreven met placeholders {}.

Daarnaast kunnen we andere variabelen definiëren om de lijnpositie, de bestandsnaam, de naam van de methode en de tekst/het bericht waar de uitzondering optrad, op te slaan.

Het traceback-object wordt 'tb' genoemd. We gebruiken twee tijdelijke aanduidingen: één voor de tekst en één voor de positie van de regel in het printstatement.

De drie componenten van de instructie 'raise' - exc_type, exc_traceback en exc_value - worden geretourneerd door de functie sys.exc_info().

De AssertionError afhandelen De printopdracht gebruiken

Om een ​​uitzondering handmatig af te handelen, kunnen we de instructie 'print' in het blok 'behalve' gebruiken.

De print-instructie drukt elk foutbericht af dat de gebruiker invoert. Met deze methode is een technische fout geen probleem voor de gebruiker.

In plaats van een fout wordt een korte melding weergegeven.

Conclusie

In dit bericht zagen we voor het eerst de introductie van uitzonderingen in Python. We hebben AssertionError besproken, hoe het werkt en hoe we AssertionError in Python kunnen implementeren. We hebben verschillende voordelen van AssertionError uitgelegd en hoe we deze kunnen vermijden. In het laatste gedeelte van dit bericht hebben we gezien hoe we de AssertionError in Python kunnen afhandelen met behulp van de Try-Except Blocks, traceback-module en print-statement.