Python | Tvirtinimo klaida
Tvirtinimo klaida
Teigimas yra programavimo koncepcija, naudojama rašant kodą, kai vartotojas deklaruoja sąlygą kaip teisingą naudodamas tvirtinti pareiškimą prieš paleidžiant modulį. Jei sąlyga yra Tiesa , valdiklis tiesiog pereina į kitą kodo eilutę. Tuo atveju, jei yra Netiesa programa nustoja veikti ir grįžta AssertionError Išimtis.
Funkcija tvirtinti teiginys yra tas pats, nepriklausomai nuo kalbos, kuria jis įgyvendinamas, tai nuo kalbos nepriklausoma sąvoka, tik sintaksė skiriasi priklausomai nuo programavimo kalbos.
Teigimo sintaksė:
tvirtinti sąlyga, klaidos_pranešimas (neprivaloma)
1 pavyzdys: tvirtinimo klaida su error_message.
Python3
# AssertionError with error_message.> x> => 1> y> => 0> assert> y !> => 0> ,> 'Invalid Operation'> # denominator can't be 0> print> (x> /> y)> |
Išvestis:
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
Numatytasis python išimčių tvarkytuvas išspausdins programuotojo parašytą error_message arba tiesiog apdoros klaidą be jokio pranešimo.
Abu būdai galioja.
AssertionError išimties tvarkymas:
AssertionError yra paveldėtas iš Exception klasės, kai atsiranda ši išimtis ir iškelia AssertionError, yra du būdai tvarkyti: arba vartotojas, arba numatytasis išimties tvarkytuvas.
1 pavyzdyje matėme, kaip veikia numatytoji išimčių tvarkyklė.
Dabar pasigilinkime, kaip jį tvarkyti rankiniu būdu.
2 pavyzdys
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)> |
Išvestis:
Invalid Operation
Praktiniai pritaikymai.
3 pavyzdys: programos testavimas.
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>>> > 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> )> |
Išvestis:
Roots of the quadratic equation are : 2.0 3.0 Roots are imaginary Roots of the quadratic equation are : -3.0 -3.0
Tai pavyzdys, rodantis, kaip ši išimtis sustabdo programos vykdymą, kai tik tvirtinimo sąlyga yra klaidinga.
Kitos naudingos programos:
- Parametrų reikšmių tikrinimas.
- Tikrinama tinkama įvestis / tipas.
- Aptinkamas kito programuotojo piktnaudžiavimas sąsaja.
- Tikrinama funkcijos išvestis.