Python AssertionError

Python Assertionerror



Kada Python program naiđe na neočekivano stanje tijekom izvođenja, program zaustavlja izvršenje i vraća iznimku. U Pythonu su iznimke i sintaktičke pogreške dvije glavne kategorije pogrešaka. Kada dio Python koda koji je sintaktički valjan stvara pogrešku, to je poznato kao podizanje iznimke/pogreške. Poruka o pogrešci u posljednjem retku definira točnu vrstu iznimke i daje opis za pomoć u otklanjanju pogrešaka, a strelica pokazuje na redak ili mjesto gdje je došlo do iznimke. Hvatanje iznimaka i upravljanje njima ključno je za izbjegavanje iznenadnog pada programa. Upotrijebite drugi način za izvršavanje koda. Na primjer, kada se dogodi navedena iznimka. Ovaj vodič govori o AssertionError i kako je možete riješiti u Pythonu.

Što je AssertionError u Pythonu?

Pogreške tvrdnje programski su koncept koji se javlja kada programer piše ili stvara blok koda koji se koristi za deklariranje kriterija ili uvjeta koji treba biti zadovoljen prije pokretanja modula. Kao i svaka Python pogreška, kontrola se prenosi na sljedeći redak koda ako je uvjet naveden kada je tvrdnja proglašena istinitom. S druge strane, ako je false, pojavljuje se pogreška ili iznimka i program se zaustavlja. Naredba assert može se koristiti u različitim programskim jezicima s njihovim specifičnim sintaksama jer je neovisna o jeziku. To je potklasa ili instanca klase Iznimka. Python AssertionError ima sljedeću sintaksu:

Sintaksa: assert uvjet, error_message(izborno)







Primjer

Kao unos unijet ćemo dob osobe, a ako je manja od nule, konzola će pokrenuti pogrešku tvrdnje.





Sada, što ako unesemo dob manju od 0?





Otklanjanje pogrešaka koda pomoću ove metode je jednostavnije, što olakšava pronalaženje pogrešaka i ispravljanje pogrešaka u programu.



Kako AssertionError radi u Pythonu

Jezik Python uključuje assert izjavu koja se može koristiti za generiranje jednostavnih izlaza poruka o pogrešci s logičkim tvrdnjama. Kada iskaz tvrdnje ne uspije, pojavljuje se 'iznimka' AssertionError. U Pythonu, klase izuzetaka izvedene su iz klase BaseException. Klasa BaseException, koja je ujedno i osnovna klasa klase AssertionError, mjesto je odakle potječe klasa Exception. Uvijek bi trebao postojati odgovarajući kod za rukovanje iznimkama za rješavanje neuspjeha izjave assert kad god se ona koristi. Zadani rukovatelj iznimkama u Pythonu ispisat će poruku o pogrešci koju je napisao programer, ali se pogreška također može obraditi ili riješiti bez poruke o pogrešci.

Implementacija AssertionError u Pythonu

Slijedi nekoliko primjera AssertionError u Pythonu:

Primjer

U ovom primjeru ćemo napisati Python program za prikaz AssertionError u programu koji pronalazi površinu kruga.

Vrijednost radijusa 'r' prosljeđuje se kao ulaz u funkciju u prethodnom programu koja je stvorena za pronalaženje površine kruga. Izjava assert se tada koristi za određivanje je li isporučena vrijednost ili radijus 'r' ispod nule, a ako mu se priloži negativna vrijednost, pokrenut će se iznimka. Površina kruga bit će vraćena na temelju vrijednosti radijusa 'r' dostavljene funkciji. Prvo se funkcija izvršava s vrijednošću r kao 3. Funkcija se zatim izvršava s vrijednošću 2,5. AssertionError se javlja kada koristimo negativnu vrijednost 'r', tj. '-1'.

Pokušajmo s drugim primjerom prikazati pojavu pogreške tvrdnje.

Primjer

U ovom primjeru, program će utvrditi je li vrijednost nazivnika različita od nule.

Poruka o pogrešci pogreške tvrdnje prikazuje se u prethodnom programu. Kreirali smo dvije varijable (a i b), a cjelobrojne vrijednosti specificiraju varijable. Druga varijabla, tj. b tada se testira da se vidi nije li jednaka 0 pomoću naredbe assert. Ako je drugačije navedeno, ispisuje se poruka o pogrešci. Ako nije, prikazuje se rezultat dijeljenja prvog broja s drugom vrijednošću. Na prethodnoj slici prikazan je izlaz programa.

Primjene AssertionError

Druge korisne upotrebe pogreške tvrdnje uključuju:

  • Tvrdnje pomažu u procjeni vrijednosti parametara
  • Tvrdnje pomažu u praćenju vrste unosa i je li ta vrijednost valjana
  • Dodatno, tvrdnje pomažu u prepoznavanju da li drugi programer koda zlorabi sučelje
  • Tvrdnje pomažu u kontinuiranom praćenju rezultata programa

Kako možemo izbjeći Assert pogreške u Pythonu

  1. Oznaka -O u Python programu može se koristiti za onemogućavanje svake tvrdnje. Važno je imati na umu da se izjave koje dolaze nakon izjave tvrdnje neće izvršiti ako onemogućimo izjave tvrdnje.
  2. Varijabla okoline također može postaviti oznaku za isključivanje iskaza tvrdnje. Ova situacija utječe na sve procese i aplikacije koji koriste ili nasljeđuju okolinu.
  3. U Pythonu, najjednostavniji pristup za sprječavanje pogrešaka tvrdnje je njihovo ručno rukovanje. Ako osiguramo da je kontrolni tok programa preusmjeren tako da ne pristupa iskazima assert, tada nema šanse za pogreške assertiona.

Rukovanje AssertionError

Osim iskaza tvrdnje, također možemo riješiti pogrešku tvrdnje koristeći sljedeće metode:

Rukovanje pogreškom tvrdnje pomoću blokova Try-Except

Izjava assert određuje jesu li vrijednosti jednake. Blok try javlja pogrešku AssertionError jer ti cijeli brojevi nisu jednaki. Naredba za ispis se izvršava nakon što blok osim uhvati iznimku. Ovdje se prikazuje izlaz naredbe za ispis iz bloka iznimke. Ključna riječ raise može se koristiti za ponovno podizanje pogreške u bloku izuzetaka kako bismo mogli odrediti izvor iznimke. Kada dođe do iznimke, ključna riječ 'raise' pokrenut će pogrešku i prekinuti program. Pomaže u održavanju ili vođenju evidencije/praćenja postojeće iznimke.

Rukovanje AssertionError pomoću traceback modula

Kada kod sadrži nekoliko assert izjava, traceback modul pomaže u identificiranju točnog izvora pogreške.

Korištenjem traceback modula, naša izjava o ispisu može se napisati s rezerviranim mjestom {}.

Dodatno, možemo definirati druge varijable za pohranjivanje položaja retka, naziva datoteke, naziva metode, kao i teksta/poruke gdje je došlo do iznimke.

Objekt praćenja naziva se 'tb'. Koristimo dva rezervirana mjesta: jedno za tekst i jedno za položaj retka u izjavi za ispis.

Tri komponente naredbe 'raise' — exc_type, exc_traceback i exc_value — vraća funkcija sys.exc_info().

Rukovanje pogreškom AssertionError pomoću naredbe print

Za ručno rukovanje iznimkom, možemo upotrijebiti naredbu 'print' unutar bloka osim.

Naredba za ispis ispisuje svaku poruku o grešci koju korisnik unese. Ovom metodom tehnička pogreška neće biti problem za korisnika.

Umjesto greške prikazuje se kratka poruka.

Zaključak

U ovom smo postu prvi put vidjeli uvođenje iznimaka u Python. Razgovarali smo o AssertionError, kako radi i kako možemo implementirati AssertionError u Python. Objasnili smo nekoliko prednosti AssertionErrora i kako ih možemo izbjeći. U posljednjem odjeljku ovog posta vidjeli smo kako možemo riješiti AssertionError u Pythonu koristeći Try-Except Blocks, traceback modul i print naredbu.