Python AssertionError

Python Assertionerror



Kapag ang isang Python program ay nakatagpo ng hindi inaasahang kundisyon habang tumatakbo, ang program ay hihinto sa pagpapatupad at magbabalik ng exception. Sa Python, mga exception at syntax error ang dalawang pangunahing kategorya ng mga error. Kapag ang isang piraso ng Python code na syntactically valid ay lumikha ng isang error, ito ay kilala bilang pagtataas ng exception/error. Tinutukoy ng mensahe ng error sa huling linya ang eksaktong uri ng exception at nagbibigay ng paglalarawan upang makatulong sa pag-debug, at ang isang arrow ay tumuturo sa linya o lokasyon kung saan nangyari ang exception. Ang pagkuha at pamamahala ng mga exception ay napakahalaga para maiwasan ang biglaang pag-crash ng program. Gumamit ng ibang paraan para i-execute ang code. Halimbawa, kapag nangyari ang tinukoy na pagbubukod. Tatalakayin ng tutorial na ito ang AssertionError at kung paano mo ito mareresolba sa Python.

Ano ang isang AssertionError sa Python?

Ang mga assertion error ay isang konsepto ng programming na nangyayari kapag ang isang programmer ay sumulat o gumawa ng isang bloke ng code na ginamit upang ideklara ang isang pamantayan o kondisyon na dapat matugunan bago patakbuhin ang module. Tulad ng anumang error sa Python, ang kontrol ay inililipat sa kasunod na linya ng code kung tinukoy ang kundisyon kung kailan idineklara na totoo ang assertion. Kung ito ay mali, sa kabilang banda, isang error o exception ang itataas, at ang program ay ihihinto. Maaaring gamitin ang assert statement sa iba't ibang mga programming language kasama ang kanilang mga partikular na syntax dahil ito ay independiyente sa wika. Ito ay isang subclass o isang instance ng klase ng Exception. Ang Python AssertionError ay may sumusunod na syntax:

Syntax: igiit kondisyon, error_message(opsyonal)







Halimbawa

Ilalagay namin ang edad ng isang tao bilang input, at kung mas mababa ito sa zero, magtataas ang console ng assertion error.





Ngayon, paano kung pumasok tayo sa edad na wala pang 0?





Ang pag-debug sa iyong code gamit ang paraang ito ay mas simple, kaya ginagawang mas simple ang paghahanap ng mga error at pagwawasto ng mga bug sa program.



Paano Gumagana ang AssertionError sa Python

Ang wikang Python ay nagsasama ng isang pahayag na igiit na maaaring magamit upang makabuo ng mga simpleng output ng mensahe ng error na may mga lohikal na pahayag. Kapag nabigo ang assertion statement, isang “exception” AssertionError ang itataas. Sa Python, ang mga exception class ay nagmula sa BaseException class. Ang BaseException class, na siyang base class din ng AssertionError class, ay kung saan nagmula ang Exception class. Dapat palaging may naaangkop na exception handling code upang harapin ang pagkabigo ng isang assert statement sa tuwing ginagamit ang isa. Ipi-print ng default na handler ng exception sa Python ang mensahe ng error na isinulat ng programmer, ngunit maaari ding pangasiwaan o lutasin ang error nang walang mensahe ng error.

Pagpapatupad ng AssertionError sa Python

Ang sumusunod ay ilang mga halimbawa ng AssertionError sa Python:

Halimbawa

Sa halimbawang ito, magsusulat kami ng Python program para magpakita ng AssertionError sa isang program na nakakahanap ng lugar ng isang bilog.

Ang halaga ng radius na 'r' ay ipinasa bilang isang input sa isang function sa nakaraang programa na nilikha upang mahanap ang lugar ng bilog. Pagkatapos ay gagamitin ang assert statement upang matukoy kung ang ibinigay na halaga o radius na 'r' ay mas mababa sa zero, at kung ang isang negatibong halaga ay ibinibigay dito, ang isang pagbubukod ay itataas. Ang lugar ng bilog ay ibabalik batay sa halaga ng radius 'r' na ibinigay sa function. Una, ang function ay pinaandar na may isang halaga ng r bilang 3. Ang function ay pagkatapos ay pinaandar na may halagang 2.5. Itinataas ang AssertionError kapag gumamit kami ng negatibong halaga ng 'r', ibig sabihin, '-1'.

Subukan natin ang isa pang halimbawa upang ipakita ang paglitaw ng isang error sa Assertion.

Halimbawa

Sa halimbawang ito, tutukuyin ng program kung hindi zero ang value ng denominator.

Ipinapakita ang mensahe ng error ng assertion error sa nakaraang program. Gumawa kami ng dalawang variable (a at b), at ang mga halaga ng integer ay tumutukoy sa mga variable. Ang pangalawang variable, ibig sabihin, b ay susuriin upang makita kung hindi ito katumbas ng 0 gamit ang assert statement. Kung hindi man tinukoy, ang mensahe ng error ay naka-print. Kung hindi, ang resulta ng paghahati ng unang numero sa pangalawang halaga ay ipapakita. Sa nakaraang larawan, ipinapakita ang output ng programa.

Mga aplikasyon ng AssertionError

Ang iba pang kapaki-pakinabang na paggamit ng assertion error ay kinabibilangan ng:

  • Nakakatulong ang assertion sa pagsusuri ng mga value ng parameter
  • Tumutulong ang mga assertion sa pagsubaybay sa uri ng input at kung wasto ang value na iyon
  • Bukod pa rito, nakakatulong ang mga assertion sa pagtukoy kung ang isa pang developer ng code ay maling gumagamit ng interface
  • Ang mga pahayag ay tumutulong sa patuloy na pagsubaybay sa output ng programa

Paano Namin Maiiwasan ang Mga Assert Error sa Python

  1. Ang -O flag sa isang Python program ay maaaring gamitin upang hindi paganahin ang bawat pahayag ng assertion. Mahalagang tandaan na ang mga pahayag na darating pagkatapos ng isang pahayag ng paninindigan ay hindi isasagawa kung idi-disable natin ang mga pahayag ng paninindigan.
  2. Ang environment variable ay maaari ding magtakda ng flag para i-off ang assertion statement. Lahat ng proseso at application na gumagamit o nagmamana ng kapaligiran ay naaapektuhan sa sitwasyong ito.
  3. Sa Python, ang pinakasimpleng diskarte upang maiwasan ang mga error sa pagsasabi ay ang manual na pangasiwaan ang mga ito. Kung tinitiyak namin na ang daloy ng kontrol ng programa ay inilihis upang hindi nito ma-access ang mga pahayag ng paggigiit, kung gayon walang pagkakataon para sa mga error sa paggigiit.

Pangangasiwa sa AssertionError

Bukod sa assertion statement, maaari rin nating pangasiwaan ang assertion error gamit ang mga sumusunod na pamamaraan:

Pangangasiwa sa Assertion Error Gamit ang Try-Except Blocks

Tinutukoy ng assert statement kung pantay ang mga halaga. Itinaas ng try block ang AssertionError error dahil ang mga integer na ito ay hindi pantay. Isinasagawa ang print command pagkatapos makuha ng except block ang exception. Dito, ipinapakita ang output ng print statement mula sa exception block. Maaaring gamitin ang keyword na itataas upang itaas ang error sa except block para matukoy namin ang pinagmulan ng exception. Kapag may nangyaring pagbubukod, ang keyword na 'taasan' ay maglalabas ng error at magtatapos sa programa. Nakakatulong ito sa pagpapanatili o pag-iingat ng record/track ng umiiral na exception.

Pangangasiwa sa AssertionError Gamit ang traceback Module

Kapag ang code ay naglalaman ng ilang mga pahayag ng paninindigan, ang traceback module ay tumutulong sa pagtukoy ng eksaktong pinagmulan ng error.

Gamit ang traceback module, ang aming print statement ay maaaring isulat gamit ang mga placeholder {}.

Bukod pa rito, maaari naming tukuyin ang iba pang mga variable upang mag-imbak ng posisyon ng linya, pangalan ng file, pangalan ng pamamaraan, pati na rin ang text/mensahe kung saan nangyari ang pagbubukod.

Ang traceback object ay tinutukoy bilang “tb”. Gumagamit kami ng dalawang placeholder: isa para sa text at isa para sa posisyon ng linya sa print statement.

Ang tatlong bahagi ng statement na “taasan” — exc_type, exc_traceback, at exc_value — ay ibinabalik ng function na sys.exc_info().

Pangangasiwa sa AssertionError Gamit ang print Statement

Para manual na pangasiwaan ang isang exception, maaari naming gamitin ang statement na “print” sa loob ng except block.

Ang print statement ay nagpi-print ng anumang mensahe ng error na ipinasok ng user. Sa pamamaraang ito, ang isang teknikal na error ay hindi magiging alalahanin para sa gumagamit.

Sa halip na isang error, isang maikling mensahe ang ipinapakita.

Konklusyon

Sa post na ito, una naming nakita ang pagpapakilala ng mga pagbubukod sa Python. Tinalakay namin ang AssertionError, kung paano ito gumagana, at kung paano namin maipapatupad ang AssertionError sa Python. Ipinaliwanag namin ang ilang mga pakinabang ng AssertionError at kung paano namin maiiwasan ang mga ito. Sa huling seksyon ng post na ito, nakita namin kung paano namin mahahawakan ang AssertionError sa Python gamit ang Try-Except Blocks, traceback module, at print statement.