НачатьНачать бесплатно

Перехват исключений

Прежде чем создавать собственные пользовательские исключения, убедитесь, что вы хорошо освоили основы обработки исключений.

В этом упражнении вам дана функция 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))
Редактировать и запускать код