Python AssertionError

Python Assertionerror



Ha egy Python-program váratlan állapotba ütközik futás közben, a program leállítja a végrehajtást, és kivételt ad vissza. A Pythonban a kivételek és a szintaktikai hibák jelentik a hibák két fő kategóriáját. Ha egy szintaktikailag érvényes Python-kódrészlet hibát hoz létre, azt kivétel/hiba felvetésének nevezzük. Az utolsó sorban lévő hibaüzenet meghatározza a kivétel pontos típusát, és leírást ad a hibakereséshez, egy nyíl pedig arra a sorra vagy helyre mutat, ahol a kivétel előfordult. A kivételek észlelése és kezelése alapvető fontosságú a hirtelen programösszeomlás elkerülése érdekében. Használjon másik módot a kód végrehajtására. Például, amikor a megadott kivétel bekövetkezik. Ez az oktatóanyag megvitatja az AssertionError-t és azt, hogyan oldhatja meg Pythonban.

Mi az AssertionError a Pythonban?

Az állítási hibák olyan programozási koncepciók, amelyek akkor fordulnak elő, amikor a programozó egy kódblokkot ír vagy hoz létre, amellyel egy feltételt vagy feltételt teljesítendőnek deklarál a modul futtatása előtt. Mint minden Python hiba, a vezérlés átkerül a következő kódsorba, ha az állítás igaznak nyilvánított feltétele. Ha viszont hamis, akkor hiba vagy kivétel jelenik meg, és a program leáll. Az assert utasítás különféle programozási nyelvekben használható a saját szintaxisukkal, mert független a nyelvtől. Ez egy alosztály vagy az Exception osztály példánya. A Python AssertionError szintaxisa a következő:

Szintaxis: érvényesítési feltétel, hibaüzenet (opcionális)







Példa

Bevitelként megadjuk a személy életkorát, és ha ez kisebb, mint nulla, a konzol állítási hibát jelez.





Mi van akkor, ha 0-nál kisebb kort adunk meg?





A kód ezzel a módszerrel történő hibakeresése egyszerűbb, így egyszerűbb a hibák keresése és a programhibák kijavítása.



Hogyan működik az AssertionError a Pythonban

A Python nyelv tartalmaz egy assert utasítást, amely egyszerű hibaüzenet-kimenetek generálására használható logikai állításokkal. Ha az állítási utasítás meghiúsul, „kivétel” AssertionError jelenik meg. A Pythonban a kivételosztályok a BaseException osztályból származnak. A BaseException osztályból, amely egyben az AssertionError osztály alaposztálya is, az Exception osztály származik. Mindig rendelkeznie kell megfelelő kivételkezelő kóddal az assert utasítás meghibásodásának kezelésére, amikor azt használják. A Python alapértelmezett kivételkezelője kinyomtatja a programozó által írt hibaüzenetet, de a hiba kezelhető vagy megoldható hibaüzenet nélkül is.

Az AssertionError megvalósítása a Pythonban

Íme néhány példa az AssertionError-ra a Pythonban:

Példa

Ebben a példában egy Python programot fogunk írni, amely egy AssertionError-t jelenít meg egy olyan programban, amely megkeresi egy kör területét.

Az „r” sugár értéke bemenetként kerül átadásra az előző program függvényében, amely a kör területének meghatározására jött létre. Az assert utasítás ezután annak meghatározására szolgál, hogy a megadott érték vagy az „r” sugár nulla alatt van-e, és ha negatív értéket adnak meg, akkor a rendszer kivételt jelent. A kör területe a függvénynek megadott „r” sugár értéke alapján kerül visszaadásra. Először a függvényt r értékkel hajtjuk végre, mint 3-at. Ezután a függvényt 2,5 értékkel hajtjuk végre. Az AssertionError akkor jelenik meg, ha negatív „r” értéket, azaz „-1”-et használunk.

Próbáljunk meg egy másik példát az Assertion hiba előfordulásának megjelenítésére.

Példa

Ebben a példában a program meghatározza, hogy a nevező értéke nullától eltérő-e.

Az állítási hiba hibaüzenete az előző programban jelenik meg. Létrehoztunk két változót (a és b), és egész értékek határozzák meg a változókat. A második változót, azaz a b-t ezután az assert utasítás segítségével teszteljük, hogy kiderüljön, nem egyenlő-e 0-val. Ellenkező esetben a hibaüzenet kinyomtatásra kerül. Ha nem, akkor az első szám második értékkel való osztásának eredménye jelenik meg. Az előző képen a program kimenete látható.

Az AssertionError alkalmazásai

Az állítási hiba további előnyös felhasználási módjai a következők:

  • Az állítás segít a paraméterértékek kiértékelésében
  • Az állítások segítenek nyomon követni a bemeneti típust és azt, hogy az érték érvényes-e
  • Ezenkívül az állítások segítenek annak azonosításában, hogy egy másik kódfejlesztő visszaél-e egy felülettel
  • Az állítások segítenek a program kimenetének folyamatos nyomon követésében

Hogyan kerülhetjük el az állítási hibákat a Pythonban

  1. A Python programok -O jelzője minden állítási utasítás letiltására használható. Fontos szem előtt tartani, hogy az állítási utasítások után érkező állítások nem fognak végrehajtódni, ha letiltjuk az állítási utasításokat.
  2. A környezeti változó egy jelzőt is beállíthat az állítási utasítások kikapcsolására. Ez a helyzet minden olyan folyamatot és alkalmazást érint, amely a környezetet használja vagy örökli.
  3. A Pythonban az állítási hibák megelőzésének legegyszerűbb módja a manuális kezelés. Ha biztosítjuk, hogy a program vezérlőfolyamát úgy tereljük el, hogy az ne férhessen hozzá az assert utasításokhoz, akkor nincs esély állítási hibákra.

Az AssertionError kezelése

Az állítási hibát az állítási utasítás mellett a következő módszerekkel is kezelhetjük:

Az állítási hiba kezelése a Try-Except blokkok használatával

Az assert utasítás határozza meg, hogy az értékek egyenlőek-e. A try blokk AssertionError hibát okoz, mert ezek az egész számok nem egyenlőek. A nyomtatási parancs azután fut le, hogy a kivétel blokk észlelte a kivételt. Itt megjelenik a print utasítás kimenete a kivételblokkból. A emelés kulcsszó használható a kivétel blokkban lévő hiba újraemelésére, hogy meghatározzuk a kivétel forrását. Kivétel esetén a „raise” kulcsszó hibát jelez, és leállítja a programot. Segít fenntartani vagy nyilvántartást vezetni a meglévő kivételekről.

Az AssertionError kezelése a visszakövetési modul használatával

Ha a kód több assert utasítást tartalmaz, a visszakövetési modul segít a pontos hibaforrás azonosításában.

A visszakövetési modul segítségével a print utasításunk {} helyőrzőkkel írható.

Ezenkívül további változókat is megadhatunk a sor pozíciójának, a fájl nevének, a metódus nevének, valamint a szövegnek/üzenetnek a tárolására, ahol a kivétel előfordult.

A visszakövetési objektum neve „tb”. Két helyőrzőt használunk: egyet a szöveghez, egyet pedig a sor pozíciójához a print utasításban.

A „raise” utasítás három összetevőjét – exc_type, exc_traceback és exc_value – a sys.exc_info() függvény adja vissza.

Az AssertionError kezelése a nyomtatott nyilatkozat használatával

Egy kivétel manuális kezeléséhez használhatjuk a „print” utasítást a kivétel blokkon belül.

A nyomtatási utasítás a felhasználó által beírt minden hibaüzenetet kinyomtat. Ezzel a módszerrel a technikai hiba nem okoz gondot a felhasználónak.

Hiba helyett egy rövid üzenet jelenik meg.

Következtetés

Ebben a bejegyzésben láthattuk először a kivételek bevezetését a Pythonban. Megbeszéltük az AssertionError-t, annak működését, és hogyan tudjuk megvalósítani az AssertionError-t a Pythonban. Elmagyaráztuk az AssertionError számos előnyét és azt, hogyan kerülhetjük el őket. A bejegyzés utolsó részében láthattuk, hogyan kezelhetjük az AssertionError-t Pythonban a Try-Except Blocks, a visszakövetési modul és a nyomtatási utasítás használatával.