Különböző típusú kivételek elkapása Pythonban

Ugyanabban a kódban szükség lehet különböző típusú kivételek elkapására.

Tegyük fel, hogy el kell kapnunk a nullával való osztás kivételét. Ilyen típusú hiba esetén a következő kivétel keletkezik:

errorZeroDivisionError: division by zero

Ahhoz, hogy ezt elkaphassuk, a kivétel nevét a except blokkban kell megadni:

pythontry:
  print(1 / 0)
except ZeroDivisionError:
  print('error: do not divide by zero')

Tegyük fel, hogy van egy listánk:

pythonlst = [1, 2, 3]

Ha a try blokkban olyan kódot helyezünk el, amelyben más potenciális hiba is előfordulhat, például egy nem létező elem kiíratása, akkor az a kivétel, amelyet az except blokk nem kap el, tovább terjed és a konzolra íródik ki. Emiatt a kód működése leáll:

pythonlst = [1, 2, 3]
try:
  print(lst[4]) # kiírja: IndexError: list index out of range
except ZeroDivisionError:
  print('error: do not divide by zero')

Ennek a helyzetnek a megoldásához meg kell adni minden blokkban a megfelelő típusú kivételek nevét. Adjuk hozzá a kódunkhoz a hiányzó elem utáni kivételt:

pythontry:
  print(lst[4])
except ZeroDivisionError:
  print('error: do not divide by zero')
except IndexError:
  print('error: elem is not exist')
Задание 1

Adott a következő kód:

pythontxt = '2'

res1 = txt + 3
res2 = txt1

Írj kódot, hogy elkaphasd a res1 és res2 változókban megjelenő kivételeket.