Mikä on AssertionError Pythonissa?
Väitevirheet ovat ohjelmointikonsepti, joka ilmenee, kun ohjelmoija kirjoittaa tai luoda koodilohkon, jota käytetään ilmoittamaan kriteerin tai ehdon täytettäväksi ennen moduulin suorittamista. Kuten mikä tahansa Python-virhe, ohjaus siirtyy seuraavalle koodiriville, jos ehto määriteltiin, kun väite julistettiin todeksi. Jos se toisaalta on epätosi, syntyy virhe tai poikkeus ja ohjelma pysäytetään. Väitelausetta voidaan käyttää useissa ohjelmointikielissä niiden tietyillä syntakseilla, koska se on kielestä riippumaton. Se on Poikkeus-luokan alaluokka tai esiintymä. Python AssertionErrorilla on seuraava syntaksi:
Syntaksi: väittää ehto, virheviesti (valinnainen)
Esimerkki
Kirjoitamme syötteeksi henkilön iän, ja jos se on pienempi kuin nolla, konsoli antaa ilmoitusvirheen.
Entä jos syötämme iän alle 0?
Koodin virheenkorjaus tällä menetelmällä on yksinkertaisempaa, joten virheiden löytäminen ja virheiden korjaaminen ohjelmassa on helpompaa.
Kuinka AssertionError toimii Pythonissa
Python-kieli sisältää väitteen, jonka avulla voidaan luoda yksinkertaisia virhesanomia loogisine väitteineen. Kun väitelause epäonnistuu, esiin tulee ”poikkeus” AssertionError. Pythonissa poikkeusluokat on johdettu BaseException-luokasta. BaseException-luokka, joka on myös AssertionError-luokan perusluokka, on Exception-luokka peräisin. Aina tulee olla asianmukainen poikkeusten käsittelykoodi, joka käsittelee väitelauseen epäonnistumisen aina, kun sitä käytetään. Pythonin oletuspoikkeuskäsittelijä tulostaa ohjelmoijan kirjoittaman virheilmoituksen, mutta virhe voidaan käsitellä tai korjata myös ilman virheilmoitusta.
AssertionErrorin käyttöönotto Pythonissa
Seuraavassa on useita esimerkkejä AssertionErrorista Pythonissa:
Esimerkki
Tässä esimerkissä kirjoitamme Python-ohjelman näyttämään AssertionError-ilmoituksen ohjelmassa, joka löytää ympyrän alueen.
Säteen “r” arvo välitetään syötteenä edellisen ohjelman funktiolle, joka on luotu etsimään ympyrän pinta-ala. Väitelausetta käytetään sitten määrittämään, onko annettu arvo tai säde 'r' alle nollan, ja jos sille syötetään negatiivinen arvo, poikkeus korotetaan. Ympyrän pinta-ala palautetaan funktiolle syötetyn säteen 'r' arvon perusteella. Ensin funktio suoritetaan arvolla r 3. Funktio suoritetaan sitten arvolla 2.5. AssertionError nousee esiin, kun käytämme negatiivista arvoa 'r', eli '-1'.
Yritetään toista esimerkkiä näyttääksesi väitevirheen esiintymisen.
Esimerkki
Tässä esimerkissä ohjelma määrittää, onko nimittäjän arvo muu kuin nolla.
Väitevirheen virheviesti näkyy edellisessä ohjelmassa. Olemme luoneet kaksi muuttujaa (a ja b), ja kokonaislukuarvot määrittävät muuttujat. Toinen muuttuja, eli b, testataan sitten, jotta nähdään, eikö se ole yhtä suuri kuin 0 käyttämällä assert-lausetta. Muussa tapauksessa virheilmoitus tulostetaan. Jos ei, ensimmäisen luvun jakamisen tulos toisella arvolla näytetään. Edellisessä kuvassa näytetään ohjelman tulos.
AssertionErrorin sovellukset
Muita väittämisvirheen hyödyllisiä käyttötapoja ovat:
- Väite auttaa arvioimaan parametriarvoja
- Väitteet auttavat seuraamaan syöttötyyppiä ja sitä, onko arvo kelvollinen
- Lisäksi väitteet auttavat tunnistamaan, käyttääkö toinen koodin kehittäjä väärin käyttöliittymää
- Väitteet auttavat ohjelman tulosten jatkuvassa seurannassa
Kuinka voimme välttää Pythonin väitevirheet
- Python-ohjelman -O-lippua voidaan käyttää poistamaan käytöstä kaikki väitelauseet. On tärkeää pitää mielessä, että väitelauseen jälkeen tulevia lauseita ei suoriteta, jos poistamme väitelauseet käytöstä.
- Ympäristömuuttuja voi myös asettaa lipun, jolla väitelauseet poistetaan käytöstä. Tämä tilanne vaikuttaa kaikkiin prosesseihin ja sovelluksiin, jotka käyttävät tai perivät ympäristöä.
- Pythonissa yksinkertaisin tapa estää väitevirheet on käsitellä niitä manuaalisesti. Jos varmistamme, että ohjelman ohjausvirta ohjataan niin, että se ei pääse käsiksi väitelauseisiin, väitevirheiden mahdollisuutta ei ole.
Assertion Error -virheen käsittely
Väitelauseen lisäksi voimme käsitellä väitevirheen myös seuraavilla tavoilla:
Väitevirheen käsitteleminen Try-Except-lohkojen avulla
Väitelause määrittää, ovatko arvot yhtä suuret. Try-lohko aiheuttaa AssertionError-virheen, koska nämä kokonaisluvut eivät ole yhtä suuria. Tulostuskomento suoritetaan sen jälkeen, kun poikkeuslohko on havainnut poikkeuksen. Tässä näytetään print-käskyn tulos poikkeuslohkosta. Nosto-avainsanalla voidaan korottaa virhettä poikkeuslohkossa, jotta voimme määrittää poikkeuksen lähteen. Poikkeuksen sattuessa avainsana 'raise' aiheuttaa virheilmoituksen ja lopettaa ohjelman. Se auttaa ylläpitämään tai pitämään kirjaa/jäljitystä olemassa olevasta poikkeuksesta.
AssertionError-virheen käsittely jäljitysmoduulin avulla
Kun koodi sisältää useita väitteitä, jäljitysmoduuli auttaa tunnistamaan tarkan virheen lähteen.
Traceback-moduulin avulla print-lauseemme voidaan kirjoittaa paikkamerkeillä {}.
Lisäksi voimme määrittää muita muuttujia tallentaaksemme rivin sijainnin, tiedoston nimen, menetelmän nimen sekä tekstin/viestin, jossa poikkeus tapahtui.
Jäljitysobjektia kutsutaan nimellä 'tb'. Käytämme kahta paikkamerkkiä: yhtä tekstille ja toista rivin sijaintia varten print-lauseessa.
Sys.exc_info()-funktio palauttaa lausunnon 'raise' kolme komponenttia - exc_type, exc_traceback ja exc_value.
AssertionErrorin käsittely Tulostetun lausunnon käyttäminen
Käsitelläksemme poikkeuksen manuaalisesti, voimme käyttää lauseketta 'print' poikkeuslohkon sisällä.
Tulostuslausunto tulostaa käyttäjän antamat virheilmoitukset. Tällä menetelmällä tekninen virhe ei aiheuta huolta käyttäjälle.
Virheen sijaan näytetään lyhyt viesti.
Johtopäätös
Tässä viestissä näimme ensimmäisen kerran poikkeuksien käyttöönoton Pythonissa. Keskustelimme AssertionErrorist, kuinka se toimii ja kuinka voimme toteuttaa AssertionErrorin Pythonissa. Selitimme useita AssertionErrorin etuja ja kuinka voimme välttää ne. Tämän viestin viimeisessä osassa näimme, kuinka voimme käsitellä AssertionErroria Pythonissa käyttämällä Try-Except Blocks -toimintoa, jäljitysmoduulia ja tulostettavaa lausuntoa.