Python - Napredno rukovanje iznimkama

Sadržaj
Nakon što se pojavi iznimka, naša je dužnost biti u mogućnosti to riješiti, na taj način naš će program moći izvršiti radnju, pokrenuti poruku, zatražiti ispravak parametra koji je unijeo korisnik, ukratko, mnoge mogućnosti .
Hvatanje iznimaka
Kao što smo već spomenuli, važna stvar o tome kada vidimo iznimku je da je možemo uhvatiti na ovaj način, možemo odlučiti što bi program trebao učiniti kada se ova situacija dogodi, da bismo to učinili, koristit ćemo naredbe probaj / osim. Kako bismo pokazali gore navedeno, analizirat ćemo vrlo jednostavan program podjele, jer znamo da ne možemo podijeliti broj s 0, pa će to izazvati iznimku.
Počnimo s izgradnjom našeg koda, zapamtite da to možemo učiniti u bilo kojem uređivaču teksta i moramo spremiti datoteku s nastavkom .py kako bismo je mogli izvršiti na našem naredbenom retku ili konzoli.
 x = input ('Unesite prvi broj:') y = input ('Unesite drugi broj:') print x / y [ / size] [size = 4]

Ovo će raditi sasvim ispravno dok korisnik ne unese vrijednost 0 kao drugi argument, to će izazvati iznimku kao što možemo vidjeti na sljedećoj slici izvođenja ovog programa:

To možemo spriječiti korištenjem probaj / osim koje smo vidjeli na početku ovog odjeljka, pogledajmo naš ispravljeni kod:
 try: x = input ('Unesite prvi broj:') y = input ('Unesite drugi broj:') print x / y osim ZeroDivisionerror: print "Drugi broj ne može biti nula!" 

Ovakav način rješavanja ovog slučaja prilično je čist, unatoč svemu moglo bi se reći i da se s jednostavnim ako to bi uvjetovalo da vrijednost Y Ne bi bilo 0 bilo bi primjereno rješenje, međutim ako bismo dodali više podjela u naš program, bilo bi nam potrebno više uvjeta, umjesto toga na ovaj način trebamo samo jedan rukovatelj moguće iznimke koja se generira.
Ulovite više od jedne iznimke
Nastavljajući s primjerom podjele na kojoj smo radili, da vidimo što bi se dogodilo da umjesto 0 unesemo nešto drugo:

Na slici možemo vidjeti da je unesen tekst i naš rukovatelj koji je očekivao samo iznimku tipa ZeroDivisionerror nije mogao pravilno rukovati jer nije znao što učiniti s novom generiranom iznimkom.
Da bismo uhvatili novu iznimku, jednostavno ćemo dodati novi blok osim kako bi se mogli nositi s iznimkom TypeError koji nastaje dijeljenjem broja s tekstom.
Pogledajmo naš ispravljeni kod:
 try: x = input ('Unesite prvi broj:') y = input ('Unesite drugi broj:') print x / y osim ZeroDivisionerror: print "Drugi broj ne može biti nula!" osim TypeError: print "To nije bio broj, zar ne?" 

Da smo se odlučili za korištenje uvjeta ako, ovaj bi nam zadatak odnio mnogo više redaka koda, osim što bi naš program učinio manje čitljivim.
Hvatanje dvije iznimke u istom bloku
Ako nam je potrebno uhvatiti nekoliko iznimaka u jednom bloku osim ono što moramo učiniti je dodati ih u deklaraciju unutar zagrada, da vidimo kod kako bismo ga bolje razumjeli:
[ / size] try: x = input ('Unesite prvi broj:') y = input ('Unesite drugi broj:') print x / y osim ZeroDivisionerror: print "Drugi broj ne može biti nula!" osim TypeError: [/ size] [size = 4] print "To nije bio broj, zar ne?" 

Kao što smo mogli vidjeti, što god se dogodilo, aplikacija će nam nastaviti slati istu poruku bez obzira je li unesena 0 ili je uneseno nešto drugo osim broja.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave