Začněte nyníZačněte zdarma

Zachytávání výjimek

Než začneš psát vlastní výjimky, ujistíme se, že máš základy zachytávání výjimek pevně v rukou.

V tomto cvičení dostaneš funkci invert_at_index(x, ind), která přijímá dva argumenty – seznam x a index ind – a vrátí převrácenou hodnotu prvku seznamu na daném indexu. Například invert_at_index([5,6,7], 0) vrátí 1/5, tedy 0.2.

Tvým úkolem je implementovat ošetření chyb tak, aby funkce vyvolávala vlastní výjimky podle typu chyby, která nastane.

Toto cvičení je součástí kurzu

Úvod do objektově orientovaného programování v Pythonu

Zobrazit kurz

Pokyny k cvičení

Ve funkci použij vzor try - except - except (se dvěma bloky except) pro zachycení a zpracování dvou výjimek takto:

  • V bloku try spusť kód v původní podobě a vrať hodnotu 1/x[ind].
  • Pokud nastane ZeroDivisionError, vypiš "Cannot divide by zero!".
  • Pokud nastane IndexError, vypiš "Index out of range!".

Správné řešení poznáš tak, že se kód spustí bez chyb a výstup v konzoli bude:

0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Modify the function to catch exceptions
def invert_at_index(x, ind):
  ____:
    return 1/x[ind]
  _____:
    print("____")
  ____:
    print("____")
 
a_list = [5,6,0,7]

# Works okay
print(invert_at_index(a_list, 1))

# Potential ZeroDivisionError
print(invert_at_index(a_list, 2))

# Potential IndexError
print(invert_at_index(a_list, 5))
Upravit a spustit kód