Süntaks:
proovige:blokeeri ..
välja arvatud erand:
käitleja ..
muu:
blokeeri ..
lõpuks:
blokeeri ..
Siin, kui avaldiste käivitamisel ilmneb viga proovige blokeeritakse, siis luuakse erand ja visatakse viga vastavale välja arvatud käitleja. Ühes saab genereerida mitu viga proovige blokeerida ja siis tuleb kirjutada mitu välja arvatud käitlejad. Avaldused muud plokk käivitatakse, kui proovige blokeerida. Avaldused lõpuks plokk käivitatakse, kui mõni viga ilmneb või seda ei juhtu. Erandkäsitluse korral muud ja lõpuks plokid pole hädavajalikud. Eri tüüpi erandite käsitlemist pythonis selgitatakse õpetuse järgmises osas.
Näide 1: Numbriandmete kinnitamiseks ühe prooviväljaku ploki kasutamine:
See näide näitab Pythonis erandite käsitlemise väga lihtsat kasutamist. Aastal proovige plokist võetakse kasutajalt kaks sisendit, üks on stringi väärtus ja teine on arvuline väärtus. Kui kasutaja sisestab teise sisendi arvväärtuse asemele mis tahes stringiväärtuse, siis ValueError erandi genereerib python3 ja kohandatud veateadet kuvatakse alates välja arvatud blokeerida.
#!/ usr / bin / env python3# Määratlege prooviplokk
proovige:
# Võtke mis tahes andmeid stringina
nimi = sisestus ("Sisestage oma nimi: \ n")
# Võtke arvandmed
vanus = int (sisend ("Sisestage oma vanus: \ n"))
# Printige vormindatud andmed koos nime ja vanusega
print ("Tere% s, olete% s aastane."% (nimi, vanus))
# käsitsevad sisendvigu
välja arvatud (ValueError):
# Prindi kohandatud tõrketeade
print ("Vale sisend! Vanusena peate sisestama numbri.")
Väljund:
Skript käivitatakse järgmises väljundis kaks korda vale ja õige sisendiga. Esimene kord, kui kasutaja kirjutab 'Kolmkümmend üks' vanuseväärtusena teisele sisendile, mis võtab arvulise väärtuse, siis a ValueError genereeritakse ja veateadet kuvatakse plokist välja arvatud. Teist korda ei teki õigete sisendväärtuste jaoks viga.
Näide 2: mitme vea, välja arvatud ploki kasutamine mitme vea käitlemiseks:
Selles näites on näidatud, kuidas saate mitme vea töötlemiseks kasutada mitut, välja arvatud plokk. Selles skriptis käsitletakse kahte tüüpi vigu. Failinimi võetakse kasutaja sisendiks lugemiseks. Kui faili pole olemas, siis see genereeritakse IO viga erand ja kui fail on olemas, kuid tühi, siis tekitab see kohandatud erandi. Selleks kasutatakse selles skriptis kahte, välja arvatud plokid. Kui ühtegi veast ei esine, kuvatakse faili sisu.
#!/ usr / bin / env python3# OS-i mooduli importimine
impordi os
# Määratlege prooviplokk
proovige:
# Võtke sisendiks failinimi
failinimi = input ('Sisesta failinimi \ n')
# Avage fail lugemiseks
file_handler = avatud (faili nimi)
# Määra otsinguponter vahemikust 0 kuni faili lõpuni
file_handler.otsi (0, os.SEEK_END)
# Lugege faili suurust baitides
suurus = failihaldur.ütle ()
# Printige faili sisu ja faili märkide arv
kui (suurus> 0):
# Määrake mõtleja faili algusesse
file_handler.otsima (0)
# Lugege ja salvestage faili sisu muutujas
file_content = failihaldur.loe ()
print ("\ nAllpool toodud faili sisu \ n")
print (faili sisu)
print ("Faili suurus on% d baiti"% size)
muu:
# Tõstke erand, kui fail on tühi
tõsta erandit ('Failil pole sisu.')
# Printige veateade, kui faili pole olemas
välja arvatud viga IOError:
print (viga)
# Kui fail on tühi, printige veateade
välja arvatud erand kui e:
print ('Viga:% s'% e)
# Printige teade, kui viga pole
muu:
print ('Viga ei esine')
Väljund:
Skripti täidetakse kolm korda. Esimesel korral antakse failinimi, mida pole olemas ja väljundil kuvatakse IOError-teade. Teist korda antakse failinimi, mis on olemas, kuid millel pole sisu ja väljund näitab kohandatud teadet. Kolmandal korral antakse failinimi, mis on olemas ja sisaldab teksti. Väljund näitab faili sisu.
Näide 3: Jagamisvigade käsitlemiseks try-paitsi-lõpuks ploki kasutamine
Näide näitab ploki try-paitsi-lõpuks kasutamist jagamisvigade käsitlemiseks. Kaks arvväärtust võetakse sisendiks ja jagatakse esimene sisestus prooviplokis teise sisendiga. Siin võib esineda kahte tüüpi vigu. Üks on ValueError millal kasutaja sisestab mis tahes väärtuse ilma numbrita ja teine on ZeroDivisionError millal kasutaja võtab 0 teise sisendina.
#!/ usr / bin / env python3# Määratlege prooviplokk
proovige:
# Sisestage kaks ujukarvu
n1 = ujuk (sisend ('Sisesta number \ n'))
n2 = ujuk (sisend ('Sisesta number \ n'))
# Jagage need numbrid
jagunemine = n1 / n2
# Käsitsege vigu
välja arvatud (ZeroDivisionError, ValueError):
print ("Jagatud nullveaga või väärtus pole arv")
# Printige teade, kui viga ei esine
muu:
print ("Jagamise tulemus on% f"% jagamine)
# Trüki teade, kui ilmneb tõrge või seda ei juhtu
lõpuks:
print ("lõpp")
Väljund:
Siin käivitatakse skripti kaks korda nii õigete sisenditega kui ka teise sisendina 0. Niisiis genereeritakse teine kord erand ja kuvatakse tõrketeade.
Järeldus:
See õpetus näitab uute Pythoni kasutajate põhilisi erandite käitlemise protsesse python3-s. Pärast ülaltoodud näidete harjutamist saavad lugejad aru, mis on erandite käsitlemine ja kuidas seda Pythoni skriptis rakendada.