Zacznij terazZacznij za darmo

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

Zobacz kurs

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 try wykonaj kod w pierwotnej postaci, zwracając 1/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))
Edytuj i uruchom kod