1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Object-Oriented Programming in Python

Connected

cvičení

Zachytávání výjimek

Než začneš psát vlastní výjimky, ujistíme se, že ovládáš základy jejich zachytávání.

V tomto cvičení máš k dispozici 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], 1) vrátí 1/6, tedy 0.166666.

Spusť kód tak, jak je, a prohlédni si výstup v konzoli. Funkce obsahuje dvě potenciálně nebezpečné operace: zaprvé, pokud má prvek, který se pokoušíme invertovat, hodnotu 0, dojde k výjimce ZeroDivisionError. Zadruhé, pokud je předaný index mimo rozsah seznamu, dojde k výjimce IndexError. V obou případech se skript přeruší, což nemusí být žádoucí.

Pokyny

100 XP

Uvnitř funkce použij vzor try - except - except (se dvěma bloky except) pro zachycení a ošetření dvou výjimek:

  • blok try spustí kód tak, jak je,
  • pokud nastane ZeroDivisionError, vypiš "Cannot divide by zero!",
  • pokud nastane IndexError, vypiš "Index out of range!"

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

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