A programok valós környezetben ritkán kapnak mindig tökéletes inputot. A felhasználó félregépel, a fájl hiányzik, a számítás nem hajtható végre. A hibakezelés abban segít, hogy a kód kulturáltan reagáljon ezekre a helyzetekre, és ne omoljon össze kontrollálatlanul.
Try és except alapok
try:
number = int(input("Adj meg egy számot: "))
print(10 / number)
except ValueError:
print("Ez nem érvényes egész szám.")
except ZeroDivisionError:
print("Nullával nem lehet osztani.")
Miért jobb a specifikus kivétel?
Mert pontosabb hibaüzenetet tudsz adni, és a kódod is világosabb lesz. A túl általános hibakezelés elrejthet valódi problémákat is.
Else és finally
Az else akkor fut, ha nem történt hiba, a finally pedig akkor is lefut, ha igen.
Tipikus kezdőhibák
- mindent általános
exceptágba teszel - túl nagy kódrészt raksz a try blokkba
- nem a valós hibát kezeled, hanem a tünetet
Fontos különbség: a hibakezelés nem arra való, hogy elrejtsd a hibás logikát, hanem arra, hogy kezeld a várható, de nem garantáltan jól alakuló futási helyzeteket.