„Python“ - išplėstinis išimčių tvarkymas

Turinys
Iškėlus išimtį, mūsų pareiga yra su ja susitvarkyti, tokiu būdu mūsų programa galės atlikti veiksmą, pateikti pranešimą, paprašyti ištaisyti vartotojo įvestą parametrą, trumpai tariant, daug galimybių .
Gaudomos išimtys
Kaip jau minėjome anksčiau, svarbu, kai matome išimtį, kad galėtume ją užfiksuoti tokiu būdu, ir mes galime nuspręsti, ką programa turėtų daryti, kai tokia situacija įvyks, kad tai padarytume, mes naudosime komandas pabandyk / išskyrus. Norėdami parodyti tai, kas išdėstyta pirmiau, mes analizuosime labai paprastą padalijimo programą, nes žinome, kad negalime padalinti skaičiaus iš 0, todėl tai sukels išimtį.
Pradėkime kurti savo kodą, prisiminkime, kad tai galime padaryti bet kuriame teksto rengyklėje ir turime išsaugoti failą su .py plėtiniu, kad galėtume jį vykdyti savo komandinėje eilutėje arba konsolėje.
 x = įvestis ('Įveskite pirmąjį skaičių:') y = įvestis ('Įveskite antrą skaičių:') spausdinti x / y [ / dydis] [dydis = 4]

Tai veiks tinkamai, kol vartotojas įves 0 reikšmę kaip antrąjį argumentą, tai sukels išimtį, kaip matome toliau pateiktame šios programos vykdymo paveikslėlyje:

Tam galime užkirsti kelią naudodami pabandyk / išskyrus ką matėme šio skyriaus pradžioje, pažiūrėkime pataisytą kodą:
 pabandykite: x = įvestis ('Įveskite pirmąjį skaičių:') y = įvestis ('Įveskite antrą skaičių:') print x / y, išskyrus ZeroDivisionerror: print "Antrasis skaičius negali būti nulis!" 

Šis būdas spręsti šią bylą yra gana švarus, nepaisant visko, taip pat galima pasakyti, kad su paprastu jei tai reikštų, kad vertė Y Tai nebūtų tinkamas sprendimas 0, tačiau jei į savo programą įtrauktume daugiau skyrių, mums reikėtų daugiau sąlygų, o tokiu būdu mums reikia tik vieno galimų išimčių tvarkytojo.
Paimkite daugiau nei vieną išimtį
Tęsdami padalijimo, prie kurio dirbome, pavyzdį, pažiūrėkime, kas nutiktų, jei vietoj 0 įvestume ką nors kita:

Paveikslėlyje matome, kad buvo įvestas tekstas ir mūsų tvarkytojas tikėjosi tik išimties „ZeroDivisionerror“ negalėjo tinkamai elgtis, nes nežinojo, ką daryti su nauja sukurta išimtimi.
Norėdami sugauti naują išimtį, mes tiesiog pridėsime naują bloką išskyrus kad galėtum susitvarkyti su išimtimi Tipo klaida kuris susidaro dalijant skaičių iš teksto.
Pažiūrėkime mūsų pataisytą kodą:
 pabandykite: x = įvestis ('Įveskite pirmąjį skaičių:') y = įvestis ('Įveskite antrą skaičių:') print x / y, išskyrus ZeroDivisionerror: print "Antrasis skaičius negali būti nulis!" išskyrus TypeError: print "Tai nebuvo skaičius, ar ne?" 

Jei būtume pasirinkę naudoti sąlygines sąlygas jei, ši užduotis būtų užtrukusi mums daug daugiau kodo eilučių, be to, kad mūsų programa būtų mažiau įskaitoma.
Sugauti dvi išimtis tame pačiame bloke
Jei mums reikia sugauti kelias išimtis viename bloke išskyrus mes turime juos pridėti prie deklaracijos skliausteliuose, pažiūrėkime kodą, kad jį geriau suprastume:
[ / size] try: x = input ('Įveskite pirmąjį skaičių:') y = input ('Įveskite antrą skaičių:') print x / y išskyrus ZeroDivisionerror: print "Antrasis skaičius negali būti nulis!" išskyrus TypeError: [/ size] [size = 4] print "Tai nebuvo skaičius, ar ne?" 

Kaip matėme, kad ir kas nutiktų, programa ir toliau siųs mums tą patį pranešimą, nesvarbu, ar įvestas 0, ar kažkas kitas nei numeris.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave