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
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
tryspusť kód v původní podobě a vrať hodnotu1/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))