„Python“

Išimčių tvarkymas „Python“

Išimčių tvarkymas „Python“
Kai paleidžiame bet kurį kodą, kuriame yra klaida, tada klaida rodoma išvestyje, sustabdant programos vykdymą. Kai kurių klaidų vartotojai gali neatpažinti ir sukurti jiems nepageidaujamą situaciją. Bet jei klaidą galima pateikti suprantamu formatu vartotojams, jiems lengva žinoti klaidos priežastį. Bet kokiame į objektą orientuotame programavime, pabandyk sugauti arba pabandyk sugauti pagaliau blokas naudojamas klaidoms tvarkyti ir rodyti jas skaitomu formatu, kuris vadinamas išimčių tvarkymu. Kaip „Python“ scenarijuje galima tvarkyti išimtis, parodyta šioje pamokoje.

Sintaksė:

bandyti:
blokuoti ..
išskyrus išimtį:
tvarkytojas ..
Kitas:
blokuoti ..
pagaliau:
blokuoti ..

Čia, jei vykdant „ bandyti blokuoti tada bus sukurta išimtis ir išmesti klaidą į atitinkamą išskyrus vedlys. Viename gali būti sugeneruotos kelios klaidos bandyti užblokuoti ir tada jūs turite parašyti kelis išskyrus tvarkytojai.  Teismo teiginiai Kitas blokas bus vykdomas, jei bandyti blokuoti. Teismo teiginiai pagaliau blokas bus vykdomas, jei įvyks klaida ar neįvyks. Išimties tvarkymui, naudojant Kitas ir pagaliau blokai nėra būtini. Skirtingi išimčių tvarkymo Python tipai yra paaiškinti kitoje mokymo programos dalyje.

1 pavyzdys: vieno bandymo, išskyrus bloką, naudojimas skaitmeniniams duomenims patvirtinti:

Šis pavyzdys rodo labai paprastą išimčių tvarkymo naudojimą „Python“. Viduje konors bandyti blokas, iš vartotojo bus paimti du įėjimai, vienas yra eilutės reikšmė, kitas - skaitinė reikšmė.  Jei vartotojas vietoj skaitinės vertės įveda bet kokią eilutės reikšmę antram įvedimui, tada „ValueError“ išimtį sugeneruos pitonas3 ir pasirinktinis klaidos pranešimas bus rodomas nuo išskyrus blokuoti.

#!/ usr / bin / env python3
# Apibrėžkite bandymo bloką
bandyti:
# Priimkite bet kokius duomenis kaip eilutę
name = input ("Įveskite savo vardą: \ n")
# Paimkite bet kokius skaitmeninius duomenis
amžius = int (įvestis ("Įveskite savo amžių: \ n"))
# Atspausdinkite suformatuotus duomenis su pavadinimu ir amžiumi
spausdinti ("Sveiki,% s, jums yra% s metų."% (vardas, amžius)"
# tvarkyti įvesties klaidas
išskyrus („ValueError“):
# Spausdinti pasirinktinį klaidos pranešimą
spausdinti ("Neteisingas įvestis! Kaip savo amžių turite įvesti skaičių.")

Išvestis:

Scenarijus vykdomas du kartus šioje išvestyje su neteisinga įvestimi ir teisinga įvestimi. Pirmą kartą, kai vartotojo tipas “Trisdešimt vienas' kaip amžiaus reikšmė antram įvedimui, kuris ima skaitinę vertę, tada a „ValueError“ generuojamas, o klaidos pranešimas rodomas iš bloko, išskyrus bloką. Antrą kartą teisingoms įvesties reikšmėms nesukuriama klaida.

2 pavyzdys: kelių klaidų naudojimas, išskyrus bloką:

Kaip galite naudoti kelias, išskyrus bloką, tvarkyti kelias klaidas, parodyta šiame pavyzdyje.  Šiame scenarijuje bus tvarkomos dviejų tipų klaidos. Failo vardas laikomas vartotojo įvestimi skaitymui. Jei failo nėra, jis bus sukurtas IOError išimtis ir jei failas yra, bet tuščias, jis sukels pasirinktinę išimtį. Tam šiame scenarijuje naudojami du blokai, išskyrus blokus. Kai neatsiranda jokios klaidos, bus rodomas failo turinys.

#!/ usr / bin / env python3
# Importuoti modulį
importuoti os
# Apibrėžkite bandymo bloką
bandyti:
# Paimkite failo pavadinimą kaip įvestį
failo pavadinimas = input ('Įveskite failo pavadinimą \ n')
# Atidarykite failą skaityti
file_handler = atidaryti (failo vardas)
# Nustatykite ieškotoją nuo 0 iki failo pabaigos
file_handler.ieškoti (0, os.SEEK_END)
# Skaitykite failo dydį baitais
dydis = file_handler.pasakyti ()
# Spausdinkite failo turinį ir failo simbolių skaičių
jei (dydis> 0):
# Nustatykite mintį į failo pradžią
file_handler.ieškoti (0)
# Skaitykite ir saugokite failo turinį kintamajame
file_content = failo tvarkytojas.skaityti ()
spausdinti ("\ nŽemiau pateikto failo turinys \ n")
spausdinti (file_content)
spausdinti ("Failo dydis yra% d baitas"% dydis)
Kitas:
# Padidinkite išimtį, jei failas tuščias
kelia išimtį ('Faile nėra turinio.„)
# Jei failo nėra, atsispausdinkite klaidos pranešimą
išskyrus IOError kaip klaidą:
spausdinti (klaida)
# Jei failas tuščias, atsispausdinkite klaidos pranešimą
išskyrus e išimtį:
spausdinti ('klaida:% s'% e)
# Spausdinkite pranešimą, jei nėra klaidos
Kitas:
spausdinti („Klaida neįvyksta“)

Išvestis:

Scenarijus vykdomas tris kartus. Pirmą kartą suteikiamas neegzistuojantis failo pavadinimas, o išvestyje rodomas IOError pranešimas. Antrą kartą suteikiamas failo vardas, kuris egzistuoja, bet neturi turinio, o išvestyje rodomas pasirinktinis pranešimas. Trečią kartą suteikiamas egzistuojantis failo pavadinimas, kuriame yra tekstas. Išvestis rodo failo turinį.

3 pavyzdys: naudokite „try-išskyrus-galiausiai“ bloką, kad būtų galima tvarkyti padalijimo klaidą

Pavyzdyje parodyta, kad blokas „try-išskyrus-galiausiai“ naudojamas dalijimo klaidai tvarkyti. Dvi skaitinės vertės bus laikomos įvestimi ir padalins pirmąją įvestį iš antrosios įvesties bandymo bloke. Čia gali atsirasti dviejų tipų klaidos. Vienas yra „ValueError“ kai vartotojas įves bet kurią reikšmę be skaičiaus, o kita yra „ZeroDivisionError“ kada vartotojas imsis 0 kaip antrą įvestį.

#!/ usr / bin / env python3
# Apibrėžkite bandymo bloką
bandyti:
# Įveskite du plūduriuojančius skaičius
n1 = plūduriuojantis (įvestis ('Įveskite skaičių \ n'))
n2 = plūduriuojantis (įvestis ('Įveskite skaičių \ n'))
# Padalinkite šiuos skaičius
dalijimas = n1 / n2
# Tvarkykite klaidas
išskyrus (ZeroDivisionError, ValueError):
spausdinti ("Padalinta iš nulio klaidos arba reikšmė nėra skaičius")
# Spausdinti pranešimą, jei nėra klaidos
Kitas:
spausdinti ("Dalijimo rezultatas yra% f"% padalijimas)
# Spausdinti pranešimą, jei įvyksta klaida, ar neįvyksta
pagaliau:
spausdinti („pabaiga“)

Išvestis:

Čia scenarijus paleidžiamas du kartus su teisingais įvestimis, o antrasis įvestis yra 0. Taigi, antrą kartą sukuriama išimtis ir rodomas klaidos pranešimas.

Išvada:

Šioje pamokoje parodomas pagrindinis „python3“ išimčių tvarkymo procesas naujiems „python“ vartotojams. Praktikuodami aukščiau pateiktus pavyzdžius, skaitytojai galės suprasti, kas yra išimčių tvarkymas ir kaip pritaikyti „Python“ scenarijuje.

5 populiariausi „Linux“ skirtų ergonomiškų kompiuterinių pelių produktai
Ar ilgalaikis kompiuterio naudojimas sukelia riešo ar pirštų skausmą?? Ar jūs kenčiate nuo sąnarių standumo ir nuolat turite paspausti rankas? Ar jauč...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...