Przechwytywanie wyjątków
Zanim zaczniesz tworzyć własne niestandardowe wyjątki, upewnij się, że opanowałeś podstawy obsługi wyjątków.
W tym ćwiczeniu masz do dyspozycji funkcję invert_at_index(x, ind), która przyjmuje dwa argumenty: listę x oraz indeks ind, i zwraca odwrotność elementu listy znajdującego się pod tym indeksem. Na przykład invert_at_index([5,6,7], 0) zwraca 1/5, czyli 0.2.
Twoim zadaniem jest dodanie obsługi błędów, która zgłasza odpowiednie wyjątki w zależności od rodzaju błędu.
To ćwiczenie jest częścią kursu
Wprowadzenie do programowania obiektowego w Pythonie
Instrukcje do ćwiczenia
Użyj wzorca try - except - except (z dwoma blokami except) wewnątrz funkcji, aby przechwycić i obsłużyć dwa wyjątki w następujący sposób:
- w bloku
trywykonaj kod w pierwotnej postaci, zwracając1/x[ind]. - jeśli wystąpi
ZeroDivisionError, wyświetl"Cannot divide by zero!", - jeśli wystąpi
IndexError, wyświetl"Index out of range!"
Wiedz, że wszystko działa poprawnie, jeśli kod wykonuje się bez błędów, a wynik w konsoli wygląda następująco:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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))