Piton

Rukovanje iznimkama u Pythonu

Rukovanje iznimkama u Pythonu
Kada pokrenemo bilo koji kod koji sadrži pogrešku, tada se pogreška prikazuje u izlazu zaustavljanjem izvođenja programa. Korisnici možda neće prepoznati neke pogreške i stvoriti im nepoželjnu situaciju. Ali ako se pogreška može prikazati u razumljivom obliku za korisnike, tada im je lako znati razlog pogreške. U bilo kojem objektno orijentiranom programiranju, pokušaj uhvatiti ili probaj-uhvati-napokon blok koristi se za rukovanje pogreškama i njihovo prikazivanje u čitljivom formatu koji se naziva rukovanje iznimkama. Kako se rukovanje iznimkama može obaviti u Python skripti prikazano je u ovom vodiču.

Sintaksa:

probati:
blok…
osim iznimke:
rukovatelj ..
drugo:
blok…
konačno:
blok…

Ovdje se dogodi bilo kakva pogreška prilikom izvršavanja naredbi probati blok tada će se generirati iznimka i baciti pogrešku na odgovarajući osim rukovatelj. U jednom se može generirati više pogrešaka probati blok i tada morate napisati višestruko osim rukovatelji.  Izjave drugo blok će se izvršiti ako se ne dogodi pogreška u probati blok. Izjave konačno blok će se izvršiti ako se dogodi ili ne dogodi neka pogreška. Za rukovanje iznimkama, koristeći drugo i konačno blokovi nisu bitni. Različite vrste rukovanja iznimkama u pythonu objašnjene su u sljedećem dijelu vodiča.

Primjer-1: Upotreba jednog pokušaj-osim bloka za provjeru numeričkih podataka:

Ovaj primjer pokazuje vrlo jednostavnu upotrebu rukovanja iznimkama u Pythonu. U probati blok, od korisnika će se uzeti dva ulaza, jedan je vrijednost niza, a drugi numerička vrijednost.  Ako korisnik upiše bilo koju vrijednost niza umjesto brojčane vrijednosti za drugi ulaz, tada se Pogreška vrijednosti iznimku će generirati python3 i prikazat će se prilagođena poruka o pogrešci osim blok.

#!/ usr / bin / env python3
# Definirajte blok proba
probati:
# Uzmi sve podatke kao niz
name = input ("Unesite svoje ime: \ n")
# Uzmite bilo koje numeričke podatke
dob = int (unos ("Unesite svoju dob: \ n"))
# Ispišite formatirane podatke s imenom i dobi
print ("Pozdrav% s, imate% s godina."% (ime, dob))
# obrađuju pogreške unosa
osim (ValueError):
# Ispis poruke prilagođene pogreške
print ("Pogrešan unos! Morate upisati broj prema svojoj dobi.")

Izlaz:

Skripta se izvršava dva puta u sljedećem izlazu s pogrešnim unosom i ispravnim unosom. Prvi put kada korisnik upiše 'Trideset jedan' kao dobna vrijednost za drugi ulaz koji uzima numeričku vrijednost, a zatim Pogreška vrijednosti generira se i poruka pogreške prikazuje se iz bloka osim. Drugi put se ne generira pogreška za ispravne ulazne vrijednosti.

Primjer-2: Upotreba multiple, osim bloka, za obradu više pogrešaka:

U ovom primjeru prikazano je kako možete koristiti višestruki osim bloka za obradu više pogrešaka.  U ovoj skripti bit će obrađene dvije vrste pogrešaka. Naziv datoteke uzima se kao ulazni podatak od korisnika za čitanje. Ako datoteka ne postoji, generirat će se IOError iznimka i ako datoteka postoji, ali je prazna, tada će se pojaviti prilagođena iznimka. Za to se u ovoj skripti koriste dva osim bloka. Kad se ništa od pogreške ne dogodi, prikazat će se sadržaj datoteke.

#!/ usr / bin / env python3
# Uvoz os modula
uvoz os
# Definirajte blok proba
probati:
# Uzmite naziv datoteke kao ulaz
filename = input ('Unesite naziv datoteke \ n')
# Otvorite datoteku za čitanje
file_handler = otvori (naziv datoteke)
# Postavite tražilo od 0 do kraja datoteke
file_handler.tražiti (0, os.SEEK_END)
# Očitajte veličinu datoteke u bajtovima
veličina = file_handler.reći()
# Ispišite sadržaj datoteke i broj znakova datoteke
ako (veličina> 0):
# Postavite pokazivač na početak datoteke
file_handler.tražiti (0)
# Pročitajte i pohranite sadržaj datoteke u varijablu
file_content = file_handler.čitati()
ispis ("\ nSadržaj datoteke naveden u nastavku \ n")
ispis (sadržaj_datoteke)
ispis ("Veličina datoteke je% d bajta"% veličina)
drugo:
# Povećajte iznimku ako je datoteka prazna
podići iznimku ('Datoteka nema sadržaj.')
# Ispišite poruku o pogrešci ako datoteka ne postoji
osim IOError kao pogreške:
ispis (pogreška)
# Ispišite poruku pogreške ako je datoteka prazna
osim iznimke kao e:
print ('Pogreška:% s'% e)
# Ispišite poruku ako nema pogreške
drugo:
ispis ('Nema pogreške')

Izlaz:

Skripta se izvršava tri puta. Prvi put se daje naziv datoteke koji ne postoji, a izlaz prikazuje poruku IOError. Drugi put se daje naziv datoteke koji postoji, ali nema sadržaj, a na izlazu se prikazuje prilagođena poruka. Treći put daje se naziv datoteke koji postoji i sadrži tekst. Izlaz prikazuje sadržaj datoteke.

Primjer-3: Upotreba bloka try-osim-konačno za obradu pogreške podjele

Primjer pokazuje upotrebu bloka try-osim-konačno za obradu pogreške podjele. Dvije numeričke vrijednosti bit će uzete kao ulaz i podijelit će prvi ulaz s drugim ulazom u bloku try. Ovdje se mogu pojaviti dvije vrste pogrešaka. Jedno je Pogreška vrijednosti kada će korisnik upisati bilo koju vrijednost bez broja, a druga je ZeroDivisionError kada će korisnik uzeti 0 kao drugi ulaz.

#!/ usr / bin / env python3
# Definirajte blok proba
probati:
# Unesite dva plutajuća broja
n1 = plutajuće (ulaz ('Unesite broj \ n'))
n2 = plutajuće (ulaz ('Unesite broj \ n'))
# Podijelite ove brojeve
podjela = n1 / n2
# Rukovanje pogreškama
osim (ZeroDivisionError, ValueError):
print ("Podijeljeno nulom ili pogreška nije vrijednost")
# Ispis poruke ako se ne dogodi pogreška
drugo:
print ("Rezultat podjele je% f"% podjele)
# Ispis poruke ako se pogreška dogodi ili se ne dogodi
konačno:
ispis ("Kraj")

Izlaz:

Ovdje se skripta izvodi dva puta s oba točna unosa i s drugim ulazom kao 0. Dakle, generira se drugi put iznimka i prikazuje poruku o pogrešci.

Zaključak:

Ovaj vodič prikazuje osnovni postupak rukovanja iznimkama u python3 za nove korisnike pythona. Čitatelji će moći razumjeti što je rukovanje iznimkama i kako se primijeniti u python skripti nakon vježbanja gore navedenih primjera.

Besplatni i otvoreni kodni pokretački programi za razvoj Linux igara
Ovaj će članak pokriti popis besplatnih i open source pokretačkih igara koje se mogu koristiti za razvoj 2D i 3D igara na Linuxu. Brojni su takvi moto...
Vodič za Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider dvanaesti je dodatak seriji Tomb Raider - franšizi u akcijsko-avanturističkoj igri koju je stvorio Eidos Montreal. I kritiča...
Kako pojačati FPS u Linuxu?
FPS je kratica Okviri u sekundi. Zadatak FPS-a je mjerenje broja sličica u reprodukcijama video zapisa ili igranim izvedbama. Jednostavnim riječima, b...