Python AssertionError

Python Assertionerror



Kui Pythoni programm satub töötamise ajal ootamatusse olukorda, peatab programm täitmise ja tagastab erandi. Pythonis on kaks peamist vigade kategooriat erandid ja süntaksivead. Kui süntaktiliselt kehtiv Pythoni koodiosa tekitab vea, nimetatakse seda erandi/vea esilekutsumiseks. Viimasel real olev veateade määrab erandi täpse tüübi ja annab silumise hõlbustamiseks kirjelduse ning nool osutab reale või asukohale, kus erand tekkis. Erandite püüdmine ja haldamine on programmi äkilise krahhi vältimiseks ülioluline. Kasutage koodi käivitamiseks teistsugust viisi. Näiteks kui ilmneb määratud erand. Selles õpetuses käsitletakse AssertionErrori ja seda, kuidas seda Pythonis lahendada.

Mis on Pythonis AssertionError?

Väitevead on programmeerimiskontseptsioon, mis ilmneb siis, kui programmeerija kirjutab või loob koodiploki, mida kasutatakse kriteeriumi või tingimuse täitmiseks deklareerimiseks enne mooduli käivitamist. Nagu iga Pythoni viga, kantakse juhtimine üle järgmisele koodireale, kui väite tõeseks tunnistamisel määratud tingimus. Kui see on aga vale, kuvatakse viga või erand ja programm peatatakse. Väitelauset saab kasutada erinevates programmeerimiskeeltes nende spetsiifiliste süntaksitega, kuna see on keelest sõltumatu. See on alamklass või klassi Erandjuhtum. Python AssertionErroril on järgmine süntaks:

Süntaks: kinnitamise tingimus, veateade (valikuline)







Näide

Sisestame sisendiks inimese vanuse ja kui see on nullist väiksem, kuvab konsool kinnitusvea.





Mis siis, kui sisestame vanuse, mis on väiksem kui 0?





Selle meetodi abil koodi silumine on lihtsam, muutes programmis vigade leidmise ja vigade parandamise lihtsamaks.



Kuidas AssertionError Pythonis töötab

Pythoni keel sisaldab kinnituslauset, mida saab kasutada loogiliste väidetega lihtsate veateateväljundite genereerimiseks. Kui väiteavaldus ebaõnnestub, kuvatakse erand AssertionError. Pythonis on erandiklassid tuletatud BaseException klassist. Klass BaseException, mis on ka klassi AssertionError baasklass, on koht, kust Exception klass tuleneb. Alati peaks olema sobiv erandite käsitlemise kood, mis käsitleb kinnituslause ebaõnnestumist, kui seda kasutatakse. Pythoni erandite vaikekäsitleja prindib programmeerija kirjutatud veateate, kuid viga saab käsitleda või lahendada ka ilma veateateta.

AssertionErrori rakendamine Pythonis

Järgnevalt on toodud mitu näidet Pythoni AssertionErrori kohta:

Näide

Selles näites kirjutame Pythoni programmi, et kuvada ringi pindala leidvas programmis AssertionError.

Raadiuse väärtus “r” edastatakse sisendiks funktsioonile eelmises programmis, mis on loodud ringi pindala leidmiseks. Seejärel kasutatakse väitelauset, et teha kindlaks, kas esitatud väärtus või raadius 'r' on alla nulli, ja kui sellele antakse negatiivne väärtus, siis tehakse erand. Ringi pindala tagastatakse funktsioonile antud raadiuse “r” väärtuse alusel. Esiteks täidetakse funktsioon väärtusega r kui 3. Seejärel täidetakse funktsioon väärtusega 2,5. AssertionError tõstatatakse, kui kasutame negatiivset väärtust 'r', st '-1'.

Proovime veel ühte näidet väite vea esinemise kuvamiseks.

Näide

Selles näites määrab programm, kas nimetaja väärtus on nullist erinev.

Väitevea veateade kuvatakse eelmises programmis. Oleme loonud kaks muutujat (a ja b) ning täisarvulised väärtused määravad muutujad. Seejärel testitakse teist muutujat, st b-d, et näha, kas see pole võrdne 0-ga, kasutades kinnituslauset. Vastasel juhul prinditakse veateade. Kui ei, kuvatakse esimese arvu jagamise tulemus teise väärtusega. Eelmisel pildil kuvatakse programmi väljund.

AssertionErrori rakendused

Väitevea muud kasulikud kasutusviisid on järgmised:

  • Väide aitab parameetrite väärtusi hinnata
  • Väited aitavad jälgida sisendi tüüpi ja seda, kas see väärtus on kehtiv
  • Lisaks aitavad väited tuvastada, kas mõni teine ​​koodiarendaja liidest väärkasutab
  • Väited aitavad programmi väljundit pidevalt jälgida

Kuidas saame Pythonis väitevigu vältida

  1. Pythoni programmis olevat lippu -O saab kasutada iga väitelause keelamiseks. Oluline on meeles pidada, et pärast väitelauset tulevaid avaldusi ei täideta, kui me väitelaused keelame.
  2. Keskkonnamuutuja saab määrata ka lipu, mis lülitab väidelaused välja. See olukord mõjutab kõiki protsesse ja rakendusi, mis kasutavad või pärivad keskkonda.
  3. Pythonis on kõige lihtsam viis kinnitusvigade vältimiseks neid käsitsi käsitleda. Kui tagame, et programmi juhtimisvoog suunatakse ümber nii, et see ei pääseks ligi väitelausetele, pole kinnitusvigade tõenäosust.

AssertionErrori käsitlemine

Lisaks väitelausele saame väitevea käsitleda ka järgmiste meetodite abil:

Kinnitusvea käsitlemine proovi-välja arvatud plokkide abil

Väitelause määrab, kas väärtused on võrdsed. Prooviplokk tõstab esile vea AssertionError, kuna need täisarvud ei ole võrdsed. Prindikäsk käivitatakse pärast seda, kui erandplokk on erandi tabanud. Siin kuvatakse erandiploki printimislause väljund. Märksõna tõstmine saab kasutada erandiplokis oleva vea uuesti esiletõstmiseks, et saaksime määrata erandi allika. Kui ilmneb erand, tekitab märksõna „tõstmine” veateate ja lõpetab programmi. See aitab säilitada või säilitada olemasoleva erandi arvestust/jälgi.

Assertion Error käsitlemine Traceback mooduli kasutamine

Kui kood sisaldab mitut kinnituslauset, aitab jälgimismoodul tuvastada täpse vea allika.

Tracebacki moodulit kasutades saab meie prindilause kirjutada kohahoidjatega {}.

Lisaks saame määratleda muid muutujaid, et salvestada rea ​​asukoht, faili nimi, meetodi nimi ja tekst/sõnum, kus erand toimus.

Jälgimise objektile viidatakse kui „tb”. Kasutame kahte kohatäitjat: ühte teksti ja teist rea asukoha jaoks prindilauses.

Lause „raise” kolm komponenti – exc_type, exc_traceback ja exc_value – tagastab funktsioon sys.exc_info().

AssertionError'i käsitlemine Printimisavalduse kasutamine

Erandi käsitsi käsitlemiseks saame kasutada erandiploki sees lauset „prindi”.

Prindiavaldus prindib kasutaja sisestatud veateate. Selle meetodi puhul ei valmista tehniline viga kasutajale muret.

Vea asemel kuvatakse lühike teade.

Järeldus

Selles postituses nägime esmakordselt Pythonis erandite tutvustamist. Arutasime AssertionErrori, selle toimimist ja seda, kuidas saame Pythonis AssertionErrori rakendada. Selgitasime mitmeid AssertionErrori eeliseid ja kuidas neid vältida. Selle postituse viimases jaotises nägime, kuidas saame Pythonis AssertionErrori käsitleda, kasutades Try-Except Blocks, jälgimismoodulit ja printimisavaldust.