Kapja e Përjashtimeve në Python
Në Python në krahasim me gjuhët e tjera programimi ka shumë situata që shkaktojnë përjashtime.
Le t'i shqyrtojmë ato më në detaje. Le të themi se kemi një listë:
lst = [1, 2, 3]
Le të përdorim një element që nuk ekziston në listë:
print(lts[4])
Pas ekzekutimit të kodit do të shfaqet një gabim (përjashtim):
IndexError: list index out of range
Nëse ne duam të vazhdojmë punën pa
shfaqur përjashtimin, ai duhet të kapet
me ndihmën e konstruksionit try-except. Ai
ka sintaksën e mëposhtme:
try:
# kodi që shkakton përjashtimin
except:
# trajtimi i gabimit
Në bllokun try duhet vendosur kodi
që mund të përmbajë përjashtime. Nëse
gjatë ekzekutimit të këtij kodi lind një
situatë e jashtëzakonshme, atëherë ekzekutimi
i kodit nuk do të ndalet, por do të kalojë në kodin e bllokut
except. Në këtë bllok duhet
të shkruhet një mesazh, që përshkruan sa më saktë
thelbin e gabimit të ndodhur.
Nëse gjatë ekzekutimit të bllokut try
nuk ndodh asnjë situatë e jashtëzakonshme,
atëherë kodi i dobishëm thjesht do të ekzekutohet, ndërsa kodi
nga blloku except - nuk do.
Le të kapim përjashtimin tonë gjatë përdorimit
të një elementi që nuk ekziston në listë. Për
këtë, në bllokun try do të vendosim kodin me
gabimin potencial. Ndërsa në bllokun except
do të tregojmë shtypjen në konsol të mesazhit 'error:
elem is not exist':
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
Pas ekzekutimit të kodit do të shtypet:
'error: elem is not exist'
Pas studimit të konstruksionit try-except
stili i kodit tuaj të shkruar duhet të ndryshojë.
Tani të gjitha vendet, ku mund të lindë një
situatë e jashtëzakonshme, duhet të mbështjellen
në try, ndërsa në bllokun except
të shkruhet reagimi ndaj këtij përjashtimi.
Pyetni përdoruesin për dy numra. Ndani njërin me tjetrin. Kapni situatën e jashtëzakonshme të pjesëtimit me zero.
Pyetni përdoruesin për një numër. Gjeni rrënjën katrore të këtij numri. Kapni situatën e jashtëzakonshme të nxjerrjes së rrënjës nga një numër negativ.
Është dhënë një listë. Pyetni përdoruesin për një numër të plotë. Merrni elementin e listës, numrin e të cilit e ka futur përdoruesi. Kapni situatën e jashtëzakonshme, e cila do të ndodhë, nëse përdoruesi futi një numër jashtë intervalit të listës.
Është dhënë kodi i mëposhtëm:
num = '5'
res = num + 2
print(res)
Çfarë nuk shkon me këtë kod? Korrigjoni të metat e tij.
Është dhënë kodi i mëposhtëm:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
Çfarë nuk shkon me këtë kod? Korrigjoni të metat e tij.