Python - uzlabota izņēmumu apstrāde

Satura rādītājs
Kad tiek izvirzīts izņēmums, mūsu pienākums ir spēt to apstrādāt, tādā veidā mūsu programma varēs izpildīt darbību, pacelt ziņojumu, pieprasīt lietotāja ievadītā parametra labošanu, īsi sakot, daudzas iespējas .
Izņēmumi
Kā mēs jau minējām iepriekš, ja redzam izņēmumu, ir svarīgi, lai mēs varētu to noķert šādā veidā, un mēs varam izlemt, kas programmai būtu jādara, tiklīdz šī situācija rodas, lai to izdarītu, mēs izmantosim komandas mēģiniet / izņemot. Lai parādītu iepriekš minēto, mēs analizēsim ļoti vienkāršu dalīšanas programmu, jo mēs zinām, ka mēs nevaram dalīt skaitli ar 0, tāpēc tas radīs izņēmumu.
Sāksim veidot savu kodu, atcerieties, ka mēs to varam izdarīt jebkurā teksta redaktorā, un mums ir jāsaglabā fails ar paplašinājumu .py, lai mēs to varētu izpildīt komandrindā vai konsolē.
 x = ievade ('Ievadiet pirmo numuru:') y = ievade ('Ievadiet otro numuru:') drukāt x / y [ / izmērs] [izmērs = 4]

Tas darbosies diezgan pareizi, līdz lietotājs ievadīs vērtību 0 kā otro argumentu, tas radīs izņēmumu, kā mēs redzam nākamajā šīs programmas izpildes attēlā:

Mēs to varam novērst, izmantojot mēģiniet / izņemot ko redzējām šīs sadaļas sākumā, aplūkosim laboto kodu:
 mēģiniet: x = ievade ('Ievadiet pirmo numuru:') y = ievade ('Ievadiet otro numuru:') print x / y, izņemot ZeroDivisionerror: print "Otrais skaitlis nevar būt nulle!" 

Šis veids, kā risināt šo lietu, ir diezgan tīrs, neskatoties uz visu, to varētu teikt arī ar vienkāršu ja tas nozīmētu, ka vērtība Y Tas nebūtu 0 būtu adekvāts risinājums, tomēr, ja mēs savai programmai pievienotu vairāk nodaļu, mums būtu nepieciešami vairāk nosacījumu, tā vietā šādā veidā mums ir nepieciešams tikai viens iespējamā izņēmuma apstrādātājs.
Ievērojiet vairāk nekā vienu izņēmumu
Turpinot iedalījuma piemēru, pie kura esam strādājuši, redzēsim, kas notiks, ja 0 vietā ievadīsim kaut ko citu:

Attēlā mēs redzam, ka tika ievadīts teksts un mūsu apstrādātājs gaidīja tikai šāda veida izņēmumu ZeroDivisionerror nevarēja rīkoties pareizi, jo nezināja, ko darīt ar jauno ģenerēto izņēmumu.
Lai noķertu jauno izņēmumu, mēs vienkārši pievienosim jaunu bloku izņemot lai tiktu galā ar izņēmumu Tipa kļūda kas tiek ģenerēts, skaitli dalot ar tekstu.
Apskatīsim laboto kodu:
 mēģiniet: x = ievade ('Ievadiet pirmo numuru:') y = ievade ('Ievadiet otro numuru:') print x / y, izņemot ZeroDivisionerror: print "Otrais skaitlis nevar būt nulle!" izņemot TypeError: print "Tas nebija skaitlis, vai ne?" 

Ja mēs būtu izvēlējušies izmantot nosacījumus ja, šis uzdevums mums būtu prasījis daudz vairāk koda rindu, izņemot mūsu programmas lasāmības samazināšanu.
Notver divus izņēmumus vienā blokā
Ja mums ir nepieciešams noķert vairākus izņēmumus vienā blokā izņemot mums tie ir jāpievieno deklarācijā iekavās, apskatīsim kodu, lai to labāk izprastu:
[ / size] try: x = input ('Ievadiet pirmo numuru:') y = input ('Ievadiet otro numuru:') print x / y izņemot ZeroDivisionerror: print "Otrais skaitlis nevar būt nulle!" izņemot TypeError: [/ size] [size = 4] print "Tas taču nebija skaitlis, vai ne?" 

Kā redzējām, neatkarīgi no tā, kas notiks, lietojumprogramma turpinās mums sūtīt to pašu ziņojumu neatkarīgi no tā, vai ir ievadīts 0 vai ir ievadīts kaut kas cits, nevis skaitlis.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu
wave wave wave wave wave