Sobes.tech
Junior

Mi az a kivételkezelés Pythonban?

sobes.tech MI

Válasz az MI-től

A kivételkezelés Pythonban egy mechanizmus arra, hogy elfogjuk és reagáljunk olyan hibákra vagy eseményekre, amelyek megszakítják a program normál végrehajtását.

A try...except...finally vagy try...except...else...finally blokkokat használjuk.

try:
    # Kód, amely kivételt okozhat
    result = 10 / 0
except ZeroDivisionError:
    # Konkrét kivétel kezelése
    print("Hiba: nullával való osztás!")
except Exception as e:
    # Bármilyen más kivétel kezelése
    print(f"Hiba történt: {e}")
else:
    # Akkor fut le, ha nem volt kivétel a try blokkban
    print("Sikeres művelet.")
finally:
    # Mindig lefut, függetlenül a kivételtől
    print("Finally blokk végrehajtva.")

Fő összetevők:

  • try: Kódblokk, ahol egy lehetséges kivétel várható.
  • except: Kódblokk, amely akkor fut le, ha egy adott típusú kivétel történik a try-ban. Több except blokk is használható különböző kivételtípusokra.
  • else: (Opcionális) Kódblokk, amely akkor fut le, ha nem történt kivétel a try-ban.
  • finally: (Opcionális) Kódblokk, amely mindig lefut, függetlenül attól, hogy volt-e kivétel vagy sem. Gyakran erőforrásokat szabadít fel (pl. fájlok bezárása).
  • raise: Kulcsszó, amellyel kifejezetten kivételt dobhatunk.
def divide(a, b):
    if b == 0:
        raise ValueError("A nevező nem lehet nulla")
    return a / b

try:
    divide(10, 0)
except ValueError as e:
    print(f"Egyéni kivétel kezelése: {e}")

Előnyei:

  • Növeli a program megbízhatóságát.
  • Elkülöníti a hibát okozó kódot.
  • Tisztábbá teszi a normál végrehajtási logika és a hibakezelő logika szétválasztását.