Kukamata Isipokuwa katika Python
Katika Python ikilinganishwa na lugha zingine za programu kuna hali nyingi sana, zinazosababisha isipokuwa.
Wacha tuzichunguze kwa undani zaidi. Hebu tuseme tuna orodha ifuatayo:
lst = [1, 2, 3]
Wacha tuirejelee kipengele kisichopo cha orodha:
print(lts[4])
Baada ya kutekeleza msimbo hitilafu itaonyeshwa (isipokuwa):
IndexError: list index out of range
Iwapo tunahitaji kuendelea na kazi bila
kuonyesha isipokuwa, tunapaswa kuikamata kwa
kutumia muundo try-except. Muundo huu
una sintaksia ifuatayo:
try:
# msimbo, unaosababisha isipokuwa
except:
# usindikaji wa hitilafu
Katika kizuizi try tunapaswa kuweka msimbo
ambao unaweza kuwa na isipokuwa. Ikiwa
ghafla wakati wa kutekeleza msimbo huu itatokea
hali ya isipokuwa, basi utekelezaji wa
msimbo hautaacha, bali utaendelea kwenye msimbo wa kizuizi
except. Katika kizuizi hiki tunapaswa
kuandika ujumbe wa kuonyesha, ukielezea kwa usahihi zaidi
kiini cha hitilafu iliyotokea.
Iwapo wakati wa kutekeleza kizuizi try
hakuna hali yoyote ya isipokuwa iliyotokea,
basi msimbo muhimu utatekelezwa tu, na msimbo
kutoka kwa kizuizi except - hautafanyika.
Wacha tuikamate isipokuwa yetu wakati wa kurejelea
kipengele kisichopo cha orodha. Kwa
hiyo katika kizuizi try tutaweka msimbo na
hitilafu inayoweza kutokea. Na katika kizuizi except
tutaonyesha ujumbe 'error:
elem is not exist' kwenye konsoli:
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
Baada ya kutekeleza msimbo utaonyeshwa:
'error: elem is not exist'
Baada ya kusoma muundo try-except
mtindo wa msimbo ulioandikwa na wewe unapaswa kubadilika.
Sasa maeneo yote, ambayo yanaweza kusababisha
hali ya isipokuwa, yanahitaji kufungwa
kwenye try, na katika kizuizi except
kuandika majibu ya isipokuwa hii.
Muulize mtumiaji nambari mbili. Gawanya moja kwa nyingine. Kamata hali ya isipokuwa ya kugawanya kwa sifuri.
Muulize mtumiaji nambari. Tafuta kipeo cha mraba cha nambari hiyo. Kamata hali ya isipokuwa ya kutoa kipeo kutoka kwa nambari hasi.
Tuna orodha. Muulize mtumiaji nambari kamili. Pata kipengele cha orodha, nambari ambayo mtumiaji aliingiza. Kamata hali ya isipokuwa, ambayo itatokea, kama mtumiaji aliingiza nambari nje ya anuwai ya orodha.
Tuna msimbo ufuatao:
num = '5'
res = num + 2
print(res)
Nini kibaya na msimbo huu? Sahihisha dosari zake.
Tuna msimbo ufuatao:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
Nini kibaya na msimbo huu? Sahihisha dosari zake.