Kivételek elkapása Pythonban

A Pythonban más programozási nyelvekhez képest nagyon sok olyan helyzet van, amely kivételeket vált ki.

Nézzük meg ezeket részletesebben. Tegyük fel, hogy van egy listánk:

pythonlst = [1, 2, 3]

Lépjünk rá egy nem létező listaelemre:

pythonprint(lts[4])

A kód végrehajtása után egy hiba (kivétel) jelenik meg:

errorIndexError: list index out of range

Ha azonban szeretnénk folytatni a munkát a kivétel kiírása nélkül, akkor el kell kapnunk azt a try-except szerkezettel. Ennek szintaxisa a következő:

pythontry:
  # kivételt kiváltó kód
except:
  # a hiba kezelése

A try blokkban azt a kódot kell elhelyezni, amely kivételt tartalmazhat. Ha véletlenül a kód végrehajtása során kivételes helyzet lép fel, akkor a kód végrehajtása nem áll le, hanem a except blokk kódjába ugrik. Ebben a blokkban kell megadni egy üzenetet, amely a lehető legpontosabban írja le a felmerült hiba lényegét.

Ha viszont a try blokk végrehajtása során egyetlen kivételes helyzet sem történt, akkor a hasznos kód egyszerűen végrehajtódik, és a except blokkból származó kód nem.

Kapjuk el a mi kivételünket, amikor egy nem létező listaelemre hivatkozunk. Ehhez a try blokkba helyezzük a potenciális hibát tartalmazó kódot. Az except blokkban pedig adjuk meg a 'error: elem is not exist' üzenet kiírását a konzolra:

pythonlst = [1, 2, 3]
try:
  print(lst[4])
except:
  print('error: elem is not exist')

A kód végrehajtása után a következő jelenik meg:

python'error: elem is not exist'

A try-except szerkezet megismerése után a megírt kód stílusának meg kell változnia. Mostantól minden olyan helyet, ahol kivételes helyzet léphet fel, be kell burkolni a try blokkba, és az except blokkban pedig meg kell határozni a reakciót erre a kivételre.

Задание 1

Kérjen a felhasználótól két számot. Ossza el az egyiket a másikkal. Kapja el a nullával való osztás kivételes helyzetét.

Задание 2

Kérjen a felhasználótól egy számot. Keresse meg a szám négyzetgyökét. Kapja el a negatív szám gyökvonásából adódó kivételes helyzetet.

Задание 3

Adott egy lista. Kérjen a felhasználótól egy egész számot. Szerezze meg a lista azon elemét, amelynek sorszámát a felhasználó megadta. Kapja el azt a kivételes helyzetet, amely akkor következik be, ha a felhasználó a lista tartományán kívüli számot adott meg.

Задание 4

Adott a következő kód:

pythonnum = '5'
res = num + 2

print(res)

Mi a baj ezzel a kóddal? Javítsa ki a hiányosságait.

Задание 5

Adott a következő kód:

pythonlst = [1, 2, 3, 4]

def getElem(iter):
  print(iter[4])

getElem(lst)

Mi a baj ezzel a kóddal? Javítsa ki a hiányosságait.