Python | Napaka trditve

Python | Napaka trditve

Napaka trditve
Trditev je programski koncept, ki se uporablja med pisanjem kode, kjer uporabnik z uporabo razglasi pogoj za resničnega trditi pred zagonom modula. Če je pogoj Prav , se kontrolnik preprosto premakne v naslednjo vrstico kode. V primeru, da je False program preneha delovati in se vrne AssertionError Izjema.

Funkcija trditi Stavek je enak ne glede na jezik, v katerem je implementiran, je od jezika neodvisen koncept, le sintaksa se razlikuje glede na programski jezik.

Sintaksa trditve:
trditi pogoj, sporočilo_napake (neobvezno)

Primer 1: Napaka v trditvi s sporočilom o napaki.

Python3




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

Izhod:

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 

Privzeti obravnavalec izjem v pythonu bo natisnil error_message, ki ga je napisal programer, ali pa bo preprosto obravnaval napako brez kakršnega koli sporočila.
Veljavna sta oba načina.

Obravnava izjeme AssertionError:
AssertionError je podedovan iz razreda Exception, ko pride do te izjeme in sproži AssertionError, obstajata dva načina za obravnavo, ali jo obravnava uporabnik ali privzeti obravnavalec izjem.
V primeru 1 smo videli, kako deluje privzeti obravnavalec izjem.
Zdaj pa se poglobimo v ročno ravnanje.

Primer 2

Python3




# 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)>

Izhod:

Invalid Operation 

Praktične aplikacije.
Primer 3: Testiranje programa.

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> )>

Izhod:

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

To je primer, ki prikazuje, kako ta izjema ustavi izvajanje programa takoj, ko je pogoj potrditve False.

Druge uporabne aplikacije:

  • Preverjanje vrednosti parametrov.
  • Preverjanje veljavnega vnosa/tipa.
  • Odkrivanje zlorabe vmesnika s strani drugega programerja.
  • Preverjanje izhoda funkcije.