Python AssertionError

Python Assertionerror



När ett Python-program stöter på ett oväntat tillstånd när det körs, stoppar programmet körningen och returnerar ett undantag. I Python är undantag och syntaxfel de två huvudkategorierna av fel. När en del av Python-kod som är syntaktiskt giltig skapar ett fel, kallas det att höja ett undantag/fel. Felmeddelandet på sista raden definierar det exakta undantagets typ och ger en beskrivning för att underlätta felsökningen, och en pil pekar på raden eller platsen där undantaget inträffade. Att fånga och hantera undantag är avgörande för att undvika en plötslig programkrasch. Använd ett annat sätt att köra koden. Till exempel när det angivna undantaget inträffar. Denna handledning kommer att diskutera AssertionError och hur du kan lösa det i Python.

Vad är ett AssertionError i Python?

Påståendefel är ett programmeringskoncept som uppstår när en programmerare skriver eller skapar ett kodblock som används för att deklarera ett kriterium eller villkor som ska uppfyllas innan modulen körs. Som alla Python-fel överförs kontrollen till den efterföljande kodraden om villkoret angavs när påståendet förklarades sant. Om det är falskt uppstår å andra sidan ett fel eller undantag och programmet stoppas. Assert-satsen kan användas i olika programmeringsspråk med sina specifika syntaxer eftersom den är oberoende av språk. Det är en underklass eller en instans av klassen Exception. Python AssertionError har följande syntax:

Syntax: hävda skick, felmeddelande (valfritt)







Exempel

Vi anger en persons ålder som indata, och om den är mindre än noll kommer konsolen att visa ett påståendefel.





Vad händer nu om vi anger en ålder som är mindre än 0?





Det är enklare att felsöka din kod med den här metoden, vilket gör det enklare att hitta fel och rätta till buggar i programmet.



Hur AssertionError fungerar i Python

Python-språket innehåller en assert-sats som kan användas för att generera enkla felmeddelandeutdata med logiska påståenden. När påståendeförklaringen misslyckas uppstår ett ”undantag” AssertionError. I Python härleds undantagsklasserna från klassen BaseException. BaseException-klassen, som också är basklassen för AssertionError-klassen, är varifrån Exception-klassen kommer. Det bör alltid finnas lämplig kod för hantering av undantag för att hantera misslyckandet i en påstående-sats när en sådan används. Standardundantagshanteraren i Python skriver ut det programmerarskrivna felmeddelandet, men felet kan också hanteras eller lösas utan ett felmeddelande.

Implementering av AssertionError i Python

Följande är flera exempel på AssertionError i Python:

Exempel

I det här exemplet kommer vi att skriva ett Python-program för att visa ett AssertionError i ett program som hittar arean av en cirkel.

Radievärdet 'r' skickas som indata till en funktion i det föregående programmet som skapas för att hitta cirkelns area. Assert-satsen används sedan för att avgöra om det angivna värdet eller radien 'r' är under noll, och om ett negativt värde tillförs det, kommer ett undantag att höjas. Cirkelns area kommer att returneras baserat på värdet på radien 'r' som tillförs funktionen. Först exekveras funktionen med värdet r som 3. Funktionen exekveras sedan med värdet 2,5. AssertionError höjs när vi använder ett negativt värde på 'r', dvs. '-1'.

Låt oss prova ett annat exempel för att visa förekomsten av ett påståendefel.

Exempel

I det här exemplet kommer programmet att avgöra om nämnarvärdet inte är noll.

Påståendefelets felmeddelande visas i det föregående programmet. Vi har skapat två variabler (a och b), och heltalsvärden anger variablerna. Den andra variabeln, det vill säga b testas sedan för att se om den inte är lika med 0 med hjälp av assert-satsen. I annat fall skrivs felmeddelandet ut. Om inte, visas resultatet av att dividera det första talet med det andra värdet. I föregående bild visas programmets utdata.

Applikationer av AssertionError

De andra fördelaktiga användningarna av påståendefel inkluderar:

  • Påstående hjälper till att utvärdera parametervärden
  • Påståenden hjälper till att övervaka indatatypen och om det värdet är giltigt
  • Dessutom hjälper påståenden till att identifiera om en annan kodutvecklare missbrukar ett gränssnitt
  • Påståenden hjälper till att kontinuerligt övervaka programmets produktion

Hur vi kan undvika att hävda felen i Python

  1. Flaggan -O i ett Python-program kan användas för att inaktivera varje påstående uttalande. Det är viktigt att komma ihåg att de uttalanden som kommer efter ett påståendeuttalande inte kommer att köras om vi inaktiverar påståendeuttalandena.
  2. Miljövariabeln kan också ställa in en flagga för att stänga av påståenden. Alla processer och applikationer som använder eller ärver miljön påverkas i denna situation.
  3. I Python är det enklaste sättet att förhindra påståendefel att hantera dem manuellt. Om vi ​​säkerställer att programmets kontrollflöde avleds så att det inte kommer åt påstående uttalanden, finns det ingen chans för påståendefel.

Hantera AssertionError

Förutom assertion statement kan vi också hantera assertion felet med följande metoder:

Hantera påståendefelet med hjälp av Try-Except-blocken

Assert-satsen avgör om värdena är lika. Try-blocket höjer AssertionError-felet eftersom dessa heltal inte är lika. Utskriftskommandot körs efter att undantagsblocket har fångat undantaget. Här visas utskriftssatsens utdata från undantagsblocket. Nyckelordet höjning kan användas för att återhöja felet i undantagsblocket så att vi kan fastställa källan till undantaget. När ett undantag inträffar kommer sökordet 'höja' att visa ett felmeddelande och avsluta programmet. Det hjälper till att upprätthålla eller hålla ett register över det befintliga undantaget.

Hantera AssertionError med hjälp av spårningsmodulen

När koden innehåller flera påstående uttalanden, hjälper spårningsmodulen att identifiera det exakta felets källa.

Med hjälp av spårningsmodulen kan vårt utskriftsutlåtande skrivas med platshållare {}.

Dessutom kan vi definiera andra variabler för att lagra radpositionen, filens namn, metodnamnet samt texten/meddelandet där undantaget inträffade.

Spårningsobjektet kallas för 'tb'. Vi använder två platshållare: en för texten och en för positionen för raden i utskriftssatsen.

De tre komponenterna i uttalandet 'höja' - exc_type, exc_traceback och exc_value - returneras av sys.exc_info()-funktionen.

Hantera AssertionError med hjälp av utskriftsutlåtandet

För att manuellt hantera ett undantag kan vi använda uttalandet 'skriv ut' i undantagsblocket.

Utskriften skriver ut alla felmeddelanden som användaren anger. Med denna metod kommer ett tekniskt fel inte att vara ett problem för användaren.

Istället för ett fel visas ett kort meddelande.

Slutsats

I det här inlägget såg vi först införandet av undantag i Python. Vi diskuterade AssertionError, hur det fungerar och hur vi kan implementera AssertionError i Python. Vi förklarade flera fördelar med AssertionError och hur vi kan undvika dem. I det sista avsnittet av det här inlägget såg vi hur vi kan hantera AssertionError i Python med hjälp av Try-Except Blocks, spårningsmodulen och utskriftsutlåtandet.