logo

Python | Chyba tvrzení

Chyba tvrzení
Assertion je programovací koncept používaný při psaní kódu, kde uživatel pomocí deklaruje podmínku jako pravdivou tvrdit před spuštěním modulu. Pokud je podmínkou Skutečný , ovládací prvek se jednoduše přesune na další řádek kódu. V případě, že ano Nepravdivé program se zastaví a vrátí se AssertionError Výjimka.

Funkce tvrdit příkaz je stejný bez ohledu na jazyk, ve kterém je implementován, je to jazykově nezávislý koncept, pouze syntaxe se liší podle programovacího jazyka.



Syntaxe tvrzení:
tvrdit stav, chybová_zpráva (nepovinné)

Příklad 1: Chyba tvrzení s chybovou_zprávou.



Python3






# AssertionError with error_message.> x>=> 1> y>=> 0> assert> y !>=> 0>,>'Invalid Operation'> # denominator can't be 0> print>(x>/> y)>

>

to je
>

Výstup :

Traceback (most recent call last): File '/home/bafc2f900d9791144fbf59f477cd4059.py', line 4, in assert y!=0, 'Invalid Operation' # denominator can't be 0 AssertionError: Invalid Operation>

Výchozí obslužný program výjimky v pythonu vypíše chybovou_zprávu napsanou programátorem, jinak pouze zpracuje chybu bez jakékoli zprávy.
Oba způsoby jsou platné.

Zpracování výjimky AssertionError:
AssertionError je zděděna z třídy Exception, když tato výjimka nastane a vyvolá AssertionError, existují dva způsoby, jak ji zpracovat, buď ji zpracuje uživatel, nebo výchozí obslužná rutina výjimky.
V příkladu 1 jsme viděli, jak funguje výchozí obsluha výjimky.
Nyní se pustíme do ruční manipulace.

Příklad 2

Python3


tabulka v reakci



# Handling it manually> try>:> >x>=> 1> >y>=> 0> >assert> y !>=> 0>,>'Invalid Operation'> >print>(x>/> y)> # the errror_message provided by the user gets printed> except> AssertionError as msg:> >print>(msg)>

>

>

součásti robota

Výstup :

Invalid Operation>

Praktické aplikace.
Příklad 3: Testování programu.

Python3




# Roots of a quadratic equation> import> math> def> ShridharAcharya(a, b, c):> >try>:> >assert> a !>=> 0>,>'Not a quadratic equation as coefficient of x ^ 2 can't be 0'> >D>=> (b>*> b>-> 4> *> a>*>c)> >assert> D>>=> 0>,>'Roots are imaginary'> >r1>=> (>->b>+> math.sqrt(D))>/>(>2> *> a)> >r2>=> (>->b>-> math.sqrt(D))>/>(>2> *> a)> >print>(>'Roots of the quadratic equation are :'>, r1, '', r2)> >except> AssertionError as msg:> >print>(msg)> ShridharAcharya(>->1>,>5>,>->6>)> ShridharAcharya(>1>,>1>,>6>)> ShridharAcharya(>2>,>12>,>18>)>

>

>

Výstup :

Roots of the quadratic equation are : 2.0 3.0 Roots are imaginary Roots of the quadratic equation are : -3.0 -3.0>

Toto je příklad, který ukazuje, jak tato výjimka zastaví provádění programu, jakmile je podmínka deklarace False.

Další užitečné aplikace:

  • Kontrola hodnot parametrů.
  • Kontrola platného vstupu/typu.
  • Detekce zneužití rozhraní jiným programátorem.
  • Kontrola výstupu funkce.