Ndërprerja e llojeve të ndryshme të përjashtimeve në Python

Në të njëjtin kod mund të jetë e nevojshme të ndërpresim lloje të ndryshme përjashtimesh.

Le të themi se duhet të kapim një përjashtim kur pjesëtojmë me zero. Me një gabim të këtij lloji dalin përjashtimet:

errorZeroDivisionError: division by zero

Për ta kapur atë, emri i përjashtimit duhet të shkruhet në bllokun except:

pythontry:
  print(1 / 0)
except ZeroDivisionError:
  print('gabim: mos pjesëto me zero')

Gjithashtu le të themi se kemi një listë:

pythonlst = [1, 2, 3]

Nëse vendosim në bllokun try kod me një gabim tjetër potencial, për shembull, me nxjerrjen e një elementi që nuk ekziston, atëherë përjashtimi, që nuk është kapur në bllokun except, do të kalojë më tej dhe do të shfaqet në konsol. Për shkak të kësaj do të ndalet puna e kodit:

pythonlst = [1, 2, 3]
try:
  print(lst[4]) # do të shfaqë IndexError: list index out of range
except ZeroDivisionError:
  print('gabim: mos pjesëto me zero')

Për të zgjidhur një situatë të tillë, duhet të specifikohet në çdo bllok emri i llojit përkatës të përjashtimeve. Le të shtojmë në kodin tonë përjashtimin për elementin që mungon:

pythontry:
  print(lst[4])
except ZeroDivisionError:
  print('gabim: mos pjesëto me zero')
except IndexError:
  print('gabim: elementi nuk ekziston')
Задание 1

Jepet kodi në vijim:

pythontxt = '2'

res1 = txt + 3
res2 = txt1

Shkruani kodin për të ndërprerë përjashtimet e paraqitura në variablat res1 dhe res2.