Перехват исключений
Прежде чем создавать собственные пользовательские исключения, убедитесь, что вы хорошо освоили основы обработки исключений.
В этом упражнении вам дана функция invert_at_index(x, ind), которая принимает два аргумента — список x и индекс ind — и возвращает число, обратное элементу списка с этим индексом. Например, invert_at_index([5,6,7], 0) возвращает 1/5, то есть 0.2.
Ваша задача — реализовать обработку ошибок, чтобы вызывать нужные исключения в зависимости от типа возникшей ошибки.
Это упражнение является частью курса
Введение в объектно-ориентированное программирование на Python
Инструкции к упражнению
Используйте конструкцию try - except - except (с двумя блоками except) внутри функции, чтобы перехватывать и обрабатывать два исключения следующим образом:
- в блоке
tryвыполните код как есть, возвращая1/x[ind]; - если возникает
ZeroDivisionError, выведите"Cannot divide by zero!"; - если возникает
IndexError, выведите"Index out of range!".
Вы всё сделали правильно, если код выполняется без ошибок и в консоли отображается следующее:
0.16666666666666666
Cannot divide by zero!
None
Index out of range!
None
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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))