Python

Výjimky a jejich ošetření

Úvod

Výjimky (exceptions) jsou mechanismus, jak Python signalizuje chyby během běhu programu. Pomáhají zachytit neočekávané situace a zabránit pádu programu.

Typy výjimek

  • Exception – základní třída všech výjimek

  • ValueError – špatná hodnota

  • TypeError – nesprávný typ

  • IndexError – přístup mimo rozsah seznamu

  • KeyError – chybějící klíč ve slovníku

  • ZeroDivisionError – dělení nulou

  • FileNotFoundError – soubor neexistuje

  • …​ a mnoho dalších

Zachycení výjimek

try:
    x = int(input("Zadej číslo: "))
except ValueError:
    print("To nebylo číslo!")
  • try – blok kódu, kde může dojít k chybě

  • except – blok pro zpracování chyby

Více výjimek

try:
    y = 10 / int(input("Dělení číslem: "))
except ZeroDivisionError:
    print("Dělení nulou není povoleno!")
except ValueError:
    print("Musíte zadat číslo!")

Blok else

  • Volitelný blok, který se vykoná, pokud k výjimce nedojde

try:
    x = int(input("Zadej číslo: "))
except ValueError:
    print("Chyba!")
else:
    print(f"Zadal jste číslo {x}")

Blok finally

  • Vždy se vykoná, bez ohledu na to, zda došlo k výjimce

try:
    f = open("soubor.txt")
finally:
    f.close()

Vlastní výjimky

  • Můžeme definovat vlastní třídy výjimek děděním z Exception

class MyError(Exception):
    pass

raise MyError("Došlo k vlastní chybě!")

Shrnutí

  • Výjimky umožňují bezpečné zacházení s chybami

  • try, except, else, finally poskytují flexibilitu

  • Vlastní výjimky zlepšují čitelnost a údržbu kódu