Пайтонда турли хил истисноларни ушлаш

Худди шу кодда турли хил истисноларни ушлаш зарур бўлиши мумкин.

Фароз қилайлик, нолга бўлишдаги истиснони ушлашимiz керак. Бундай хил хатоларда quyidagi истисно чиқади:

errorZeroDivisionError: division by zero

Уни ушлаш учун, истисно номини except блокига ёзиш керак:

pythontry:
  print(1 / 0)
except ZeroDivisionError:
  print('хато: нолга бўлманг')

Шунингдек, фароз қилайлик бизда рўйхат бор:

pythonlst = [1, 2, 3]

Агар try блокида бошқа потенциал хатолик билан код ёзилса, масалан, мавжуд бўлмаган элементни чиқариш, у ҳолда except блокида ушланмаган истисно, ўзини давом эттириб, консолга чиқади. Натижада код иши тўхтайди:

pythonlst = [1, 2, 3]
try:
  print(lst[4]) # IndexError: list index out of range ни чиқаради
except ZeroDivisionError:
  print('хато: нолга бўлманг')

Бундай вазиятни ҳал этиш учун, ҳар бир блокда мос келувчи истисно турларининг номини кўрсатиш керак. Келинг, бизнинг кодга етисҳмаган элемент учун истисно қўшайлик:

pythontry:
  print(lst[4])
except ZeroDivisionError:
  print('хато: нолга бўлманг')
except IndexError:
  print('хато: элемент мавжуд эмас')
Задание 1

Қуйидаги код берилган:

pythontxt = '2'

res1 = txt + 3
res2 = txt1

res1 ва res2 ўзгаргувчиларида келтирилган истисноларни ушлаш учун код ёзинг.