Pythonда исключенияларни ушлаш
Pythonда бошка дастурлаш тилларига нисбатан жуда кўп исключенияларни келтириб чикарадиган вазиятлар мавжуд.
Келик, уларни батафсилрок кўриб чикайлик. Бизда рокъат мавжуд деб фараз килайлик:
lst = [1, 2, 3]
Рўйхатни мавжуд бўлмаган элементига мурожаат килайлик:
print(lts[4])
Кодни бажарилганидан сўнг хато (исключение) чикарилади:
IndexError: list index out of range
Агар бизга исключенияни чикаришсиз ишни давом
эттириш лозим бўлса, уни try-except
конструкцияси ёрдамида ушлаш керак. У
куйидаги синтаксисга эга:
try:
# исключения келтириб чикарадиган код
except:
# хатоликни карши олиш
try блокида исключенияни ўз ичига олиши
мумкин бўлган кодни жойлаштириш керак. Агар
бу кодни бажариш жараёнида исключиния вазият
юз бериб қолса, кодни бажариш тўхтамайди,
балки except блокининг кодига ўтади.
Бу блокда юз берган хатоликни мүмкин кадар
анiq тасвирловчи хабарни чикариш керак.
Агар try блокини бажариш жараёнида
хич кандай исключиния вазиятлар юз бермаса,
у холда фойдали код жуда осонгина бажарилади,
except блокининг коди эса бажарилмайди.
Келик, рўйхатни мавжуд бўлмаган элементига
мурожаат килишдаги исключениямизни ушлайлик.
Бунинг учун try блокига хатолик
юзага келиши мумкин бўлган кодни жойлаштирамиз.
except блокида эса 'error: elem is not
exist' консолга чикаришни кўрсатамиз:
lst = [1, 2, 3]
try:
print(lst[4])
except:
print('error: elem is not exist')
Код бажарилганидан сўнг куйидаги чикади:
'error: elem is not exist'
try-except конструкциясини ўрганиб
олганингиздан сўнг сиз ёзган кодинг стили
ўзгариши керак. Энди исключиния вазият юзага
келиши мумкин бўлган барча жойларни try
ичига ўраб қўйиш керак, except блокида
эса бу исключенияга реакцияни ёзиш керак.
Фойдаланувчидан иккита сон сўранг. Уларни бир-бирига бўлинг. Нолга бўлишдаги исключиния вазиятни ушланг.
Фойдаланувчидан сон сўранг. Шу сондан иккинчи даражали илдизни топинг. Манфий сондан илдиз олишдаги исключиния вазиятни ушланг.
Рўйхат берилган. Фойдаланувчидан бутун сон сўранг. Фойдаланувчи киритган рақамдаги рўйхат элементини олинг. Агар фойдаланувчи рўйхат диапазонидан ташқаридаги сонни киритганда юз берадиган исключиния вазиятни ушланг.
Куйидаги код берилган:
num = '5'
res = num + 2
print(res)
Бу кодда нима но tug'ri? Унинг камчиликларини тузатинг.
Куйидаги код берилган:
lst = [1, 2, 3, 4]
def getElem(iter):
print(iter[4])
getElem(lst)
Бу кодда нима но tug'ri? Унинг камчиликларини тузатинг.