Python AssertionError

Python Assertionerror



Když program Python při běhu narazí na neočekávanou podmínku, program zastaví provádění a vrátí výjimku. V Pythonu jsou dvě hlavní kategorie chyb výjimky a chyby syntaxe. Když část kódu Pythonu, který je syntakticky platný, vytvoří chybu, je to známé jako vyvolání výjimky/chyby. Chybová zpráva na posledním řádku definuje přesný typ výjimky a poskytuje popis, který vám pomůže při ladění, a šipka ukazuje na řádek nebo místo, kde k výjimce došlo. Chytání a správa výjimek je zásadní, abyste se vyhnuli náhlému selhání programu. Ke spuštění kódu použijte jiný způsob. Například, když dojde k zadané výjimce. Tento tutoriál pojednává o AssertionError a o tom, jak ji můžete vyřešit v Pythonu.

Co je AssertionError v Pythonu?

Chyby tvrzení jsou konceptem programování, ke kterému dochází, když programátor zapíše nebo vytvoří blok kódu používaný k deklaraci kritéria nebo podmínky, které mají být splněny před spuštěním modulu. Jako každá chyba Pythonu se řízení přenese na následující řádek kódu, pokud byla podmínka určená při prohlášení výrazu pravdivá. Pokud je naopak nepravda, dojde k chybě nebo výjimce a program se zastaví. Příkaz statement lze použít v různých programovacích jazycích s jejich specifickými syntaxemi, protože je nezávislý na jazyce. Je to podtřída nebo instance třídy Exception. Python AssertionError má následující syntaxi:

Syntax: potvrdit podmínku, chybová_zpráva (nepovinné)







Příklad

Jako vstup zadáme věk osoby, a pokud je menší než nula, konzole zobrazí chybu tvrzení.





Co když zadáme věk menší než 0?





Ladění kódu pomocí této metody je jednodušší, takže je snazší najít chyby a opravit chyby v programu.



Jak AssertionError funguje v Pythonu

Jazyk Python obsahuje příkaz statement, který lze použít ke generování jednoduchých výstupů chybových zpráv s logickými asercemi. Když příkaz assertion selže, zobrazí se „výjimka“ AssertionError. V Pythonu jsou třídy výjimek odvozeny od třídy BaseException. Třída BaseException, která je také základní třídou třídy AssertionError, je místo, odkud pochází třída Exception. Vždy by měl existovat vhodný kód pro zpracování výjimek, který by se vypořádal se selháním příkazuasse, kdykoli je použit. Výchozí obslužný program výjimky v Pythonu vypíše chybovou zprávu napsanou programátorem, ale chybu lze také zpracovat nebo vyřešit bez chybové zprávy.

Implementace AssertionError v Pythonu

Následuje několik příkladů AssertionError v Pythonu:

Příklad

V tomto příkladu napíšeme program Python, který zobrazí AssertionError v programu, který najde oblast kruhu.

Hodnota poloměru „r“ je předána jako vstup do funkce v předchozím programu, který je vytvořen k nalezení oblasti kruhu. Příkaz statement se pak používá k určení, zda je dodaná hodnota nebo poloměr „r“ pod nulou, a pokud je do ní zadaná záporná hodnota, vyvolá se výjimka. Plocha kružnice bude vrácena na základě hodnoty poloměru „r“ zadané funkci. Nejprve se funkce provede s hodnotou r jako 3. Funkce se pak provede s hodnotou 2,5. AssertionError se vyvolá, když použijeme zápornou hodnotu „r“, tj. „-1“.

Zkusme další příklad pro zobrazení výskytu chyby tvrzení.

Příklad

V tomto příkladu program určí, zda je hodnota jmenovatele nenulová.

Chybová zpráva o chybě výrazu se zobrazuje v předchozím programu. Vytvořili jsme dvě proměnné (a a b) a celočíselné hodnoty specifikují proměnné. Druhá proměnná, tj. b, se poté otestuje, aby se zjistilo, zda se nerovná 0 pomocí příkazu Claim. V opačném případě se vytiskne chybová zpráva. Pokud ne, zobrazí se výsledek dělení prvního čísla druhou hodnotou. Na předchozím obrázku je zobrazen výstup programu.

Aplikace AssertionError

Mezi další užitečná použití chyby tvrzení patří:

  • Asertace pomáhá při vyhodnocování hodnot parametrů
  • Tvrzení pomáhají sledovat typ vstupu a to, zda je tato hodnota platná
  • Aserce navíc pomáhají při identifikaci, zda jiný vývojář kódu nezneužívá rozhraní
  • Tvrzení pomáhají průběžně sledovat výstup programu

Jak se můžeme vyhnout chybám tvrzení v Pythonu

  1. Parametr -O v programu Python lze použít k zakázání každého příkazu aserce. Je důležité mít na paměti, že příkazy, které následují za příkazem tvrzení, nebudou provedeny, pokud příkazy tvrzení deaktivujeme.
  2. Proměnná prostředí může také nastavit příznak pro vypnutí příkazů aserce. V této situaci jsou ovlivněny všechny procesy a aplikace, které používají nebo zdědí prostředí.
  3. V Pythonu je nejjednodušším způsobem, jak předcházet chybám asercí, je zpracovat ručně. Pokud zajistíme, aby byl řídicí tok programu odkloněn tak, aby nezískal přístup k příkazům aserce, pak neexistuje žádná šance na chyby v tvrzeních.

Zpracování chyby AssertionError

Kromě příkazu aserce můžeme chybu aserce zpracovat také pomocí následujících metod:

Zpracování chyby tvrzení pomocí bloků Try-Except

Příkaz statement určuje, zda jsou hodnoty stejné. Blok try vyvolá chybu AssertionError, protože tato celá čísla nejsou stejná. Příkaz print se provede poté, co blok výjimkou zachytí výjimku. Zde se zobrazí výstup tiskového příkazu z bloku výjimky. Klíčové slovo zvýšit lze použít k opětovnému vyvolání chyby v bloku výjimkou, abychom mohli určit zdroj výjimky. Když dojde k výjimce, klíčové slovo „raise“ vyvolá chybu a ukončí program. Pomáhá při udržování nebo uchovávání záznamu/sledování existující výjimky.

Zpracování chyby AssertionError pomocí modulu traceback

Když kód obsahuje několik příkazů claim, modul traceback pomáhá identifikovat přesný zdroj chyby.

Pomocí modulu traceback lze naše tiskové prohlášení zapsat pomocí zástupných symbolů {}.

Kromě toho můžeme definovat další proměnné pro uložení pozice řádku, názvu souboru, názvu metody a také textu/zprávy, kde došlo k výjimce.

Objekt traceback se nazývá „tb“. Používáme dva zástupné symboly: jeden pro text a jeden pro pozici řádku v tiskovém výpisu.

Funkce sys.exc_info() vrací tři součásti příkazu „raise“ – exc_type, exc_traceback a exc_value.

Zpracování chyby AssertionError pomocí tiskového prohlášení

Chcete-li výjimku zpracovat ručně, můžeme použít příkaz „tisknout“ uvnitř bloku s výjimkou.

Tiskový výpis vytiskne jakoukoli chybovou zprávu, kterou uživatel zadá. S touto metodou nebude technická chyba uživatele znepokojovat.

Místo chyby se zobrazí krátká zpráva.

Závěr

V tomto příspěvku jsme poprvé viděli zavedení výjimek v Pythonu. Probrali jsme AssertionError, jak to funguje a jak můžeme implementovat AssertionError v Pythonu. Vysvětlili jsme několik výhod AssertionError a jak se jim můžeme vyhnout. V poslední části tohoto příspěvku jsme viděli, jak můžeme zvládnout AssertionError v Pythonu pomocí Try-Except Blocks, modulu traceback a tiskového prohlášení.