Python

Izņēmumu apstrāde Python

Izņēmumu apstrāde Python
Kad mēs izpildām jebkuru kodu, kurā ir kļūda, kļūda tiek parādīta izvadā, apturot programmas izpildi. Dažas kļūdas lietotāji var neatpazīt un radīt viņiem nevēlamu situāciju. Bet, ja kļūdu var parādīt lietotājiem saprotamā formātā, viņiem ir viegli uzzināt kļūdas iemeslu. Jebkurā objektorientētā programmēšanā, mēģināt noķert vai mēģiniet noķert-beidzot bloks tiek izmantots kļūdu apstrādei un to parādīšanai lasāmā formātā, ko sauc par izņēmumu apstrādi. Šajā apmācībā ir parādīts, kā Python skriptā var rīkoties ar izņēmumiem.

Sintakse:

mēģiniet:
bloķēt…
izņemot izņēmumu:
apdarinātājs…
cits:
bloķēt…
visbeidzot:
bloķēt…

Šeit, ja rodas kāda kļūda, izpildot mēģiniet bloķēt, tad tiks izveidots izņēmums un mest kļūdu attiecīgajam izņemot apdarinātājs. Vienā vienā var ģenerēt vairākas kļūdas mēģiniet bloķēt, un tad jums ir jāraksta vairāki izņemot apstrādātāji.  Deklarācijas cits bloks tiks izpildīts, ja mēģiniet bloķēt. Deklarācijas beidzot bloks tiks izpildīts, ja rodas kāda kļūda vai nenotiek. Izņēmumu apstrādei, izmantojot cits un beidzot bloki nav būtiski. Dažādi izņēmumu apstrādes veidi pitonā ir izskaidroti apmācības nākamajā daļā.

1. piemērs: viena mēģinājuma, izņemot bloku, izmantošana ciparu datu validēšanai:

Šis piemērs parāda ļoti vienkāršu izņēmumu apstrādes izmantošanu Python. Iekš mēģiniet blokā, no lietotāja tiks ņemtas divas ievades, viena ir virknes vērtība un otra - skaitliska vērtība.  Ja lietotājs otrās ievades skaitliskās vērtības vietā ieraksta jebkuru virknes vērtību, tad ValueError izņēmumu radīs pitons3 un pielāgots kļūdas ziņojums tiks parādīts no izņemot bloķēt.

#!/ usr / bin / env python3
# Definējiet mēģinājuma bloku
mēģiniet:
# Jebkurus datus uztveriet kā virkni
name = input ("Ievadiet savu vārdu: \ n")
# Ņemiet visus skaitliskos datus
vecums = int (ievade ("Ievadiet savu vecumu: \ n"))
# Izdrukājiet formatētos datus ar vārdu un vecumu
print ("Sveiki,% s, jūs esat% s gadus vecs."% (vārds, vecums))
# apstrādāt ievades kļūdas
izņemot (ValueError):
# Drukāt pielāgotu kļūdas ziņojumu
drukāt ("Nepareiza ievade! Kā vecums jums jāievada skaitlis.")

Izeja:

Skripts tiek izpildīts divas reizes nākamajā izvadē ar nepareizu ievadi un pareizu ievadi. Pirmo reizi, kad lietotāja tips 'Trīsdesmit viens' kā vecuma vērtību otrajai ievadei, kurai ir skaitliskā vērtība, tad a ValueError tiek ģenerēts, un kļūdas ziņojums tiek parādīts no bloka, izņemot. Otrreiz pareizu ievades vērtību gadījumā netiek ģenerēta kļūda.

2. piemērs: vairāku, izņemot bloku, izmantošana, lai apstrādātu vairākas kļūdas:

Šajā piemērā ir parādīts, kā var izmantot vairākus, izņemot bloku, lai apstrādātu vairākas kļūdas.  Šajā skriptā tiks apstrādāti divu veidu kļūdas. Faila nosaukums tiek uzskatīts par lietotāja ievadītu lasīšanai. Ja fails neeksistē, tas tiks ģenerēts IOError izņēmums un, ja fails pastāv, bet ir tukšs, tas radīs pielāgotu izņēmumu. Šajā nolūkā šajā skriptā tiek izmantoti divi, izņemot blokus. Kad nenotiek neviena no kļūdām, tiks parādīts faila saturs.

#!/ usr / bin / env python3
# Importēt moduli
importēt os
# Definējiet mēģinājuma bloku
mēģiniet:
# Paņemiet faila nosaukumu kā ievadi
faila nosaukums = input ('Ievadiet faila nosaukumu \ n')
# Atveriet failu lasīšanai
file_handler = atvērts (faila nosaukums)
# Iestatiet meklēšanas punktu no 0 līdz faila beigām
file_handler.meklēt (0, os.SEEK_END)
# Izlasiet faila lielumu baitos
izmērs = file_handler.pateikt ()
# Izdrukājiet faila saturu un faila rakstzīmju skaitu
ja (izmērs> 0):
# Iestatiet domātājam faila sākumu
file_handler.meklēt (0)
# Lasiet un saglabājiet faila saturu mainīgajā
file_content = file_handler.lasīt ()
drukāt ("\ nTālāk norādītā faila saturs \ n")
drukāt (file_content)
drukāt ("Faila lielums ir% d baiti",% size)
cits:
# Paaugstiniet izņēmumu, ja fails ir tukšs
rais Exception ('Failā nav satura.')
# Ja fails neeksistē, izdrukājiet kļūdas ziņojumu
izņemot IOError kā kļūdu:
izdrukāt (kļūda)
# Ja fails ir tukšs, izdrukājiet kļūdas ziņojumu
izņemot izņēmumu kā e:
drukāt ('Kļūda:% s'% e)
# Ja nav kļūdas, izdrukājiet ziņojumu
cits:
drukāt ('Notiek kļūda')

Izeja:

Skripts tiek izpildīts trīs reizes. Pirmo reizi tiek piešķirts faila nosaukums, kura nepastāv, un izvade parāda IOError ziņojumu. Otro reizi tiek piešķirts faila nosaukums, kas pastāv, bet kuram nav satura, un izvade parāda pielāgotu ziņojumu. Trešo reizi tiek piešķirts faila nosaukums, kas pastāv un satur tekstu. Izvade parāda faila saturu.

3. piemērs: try-izņemot-beidzot bloķēšanas izmantošana, lai apstrādātu dalīšanas kļūdu

Piemērs parāda bloku try-izņemot-beidzot, lai apstrādātu sadalīšanas kļūdu. Divas skaitliskās vērtības tiks ņemtas par ievadi, un mēģinājuma blokā pirmo ievadi sadalīs ar otro ievadi. Šeit var rasties divu veidu kļūdas. Viens ir ValueError kad lietotājs ierakstīs jebkuru vērtību bez skaitļa, un cita ir ZeroDivisionError kad lietotājs veiks 0 kā otro ievadi.

#!/ usr / bin / env python3
# Definējiet mēģinājuma bloku
mēģiniet:
# Ievadiet divus peldošos skaitļus
n1 = pludiņš (ievade ('Ievadiet skaitli \ n'))
n2 = pludiņš (ievade ('Ievadiet skaitli \ n'))
# Sadaliet šos skaitļus
dalījums = n1 / n2
# Rīkojieties ar kļūdām
izņemot (ZeroDivisionError, ValueError):
print ("Dalīts ar nulles kļūdu vai vērtība nav skaitlis")
# Drukāt ziņojumu, ja nav kļūdu
cits:
drukāt ("Dalīšanas rezultāts ir% f"% sadalījums)
# Drukāt ziņojumu, ja rodas kļūda vai nenotiek
visbeidzot:
drukāt ("beigas")

Izeja:

Šeit skripts tiek palaists divas reizes gan ar pareizu ievadi, gan ar otro ievadi kā 0. Tātad otrais izņēmums tiek ģenerēts un parāda kļūdas ziņojumu.

Secinājums:

Šajā apmācībā ir parādīts pamata izņēmumu apstrādes process Python3 jaunajiem python lietotājiem. Pēc iepriekš minēto piemēru izmantošanas lasītāji varēs saprast, kas ir izņēmumu apstrāde un kā tos izmantot pitona skriptā.

5 labākās arkādes spēles Linux
Mūsdienās datori ir nopietnas mašīnas, kuras izmanto spēlēšanai. Ja jūs nevarat iegūt jauno augsto rezultātu, jūs zināt, ko es domāju. Šajā ierakstā j...
Cīņa par Vesnotu 1.13.6 Izlaista attīstība
Cīņa par Vesnotu 1.13.6 izlaists pagājušajā mēnesī, ir sestais izstrādes izlaidums 1.13.x sērija un tā nodrošina vairākus uzlabojumus, īpaši lietotāja...
Kā instalēt League of Legends operētājsistēmā Ubuntu 14.04
Ja jūs esat League of Legends fans, tad šī ir iespēja jums izmēģināt League of Legends. Ņemiet vērā, ka LOL tiek atbalstīts PlayOnLinux, ja esat Linux...