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

В Python по сравнению с другими языками программирования очень много ситуаций, вызывающих исключения.

Давайте рассмотрим их подробнее. Пусть у нас есть список:

lst = [1, 2, 3]

Обратимся к несуществующему элементу списка:

print(lts[4])

После выполнения кода выведется ошибка (исключение):

IndexError: list index out of range

Если же нам нужно продолжить работу без вывода исключения, его следует поймать с помощью конструкции try-except. Она имеет следующий синтаксис:

try: # код, вызывающий исключение except: # обработка ошибки

В блоке try следует размещать код, который может содержать исключение. Если вдруг при выполнении этого кода возникнет исключительная ситуация, то выполнение кода не остановится, а перейдет в код блока except. В данном блоке следует прописать вывод сообщения, максимально точно описывающего суть возникшей ошибки.

Если же при выполнении блока try никаких исключительных ситуаций не случилось, то полезный код просто выполнится, а код из блока except - нет.

Давайте отловим наше исключение при обращении к несуществующему элементу списка. Для этого в блок try разместим код с потенциальной ошибкой. А в блоке except укажем вывод в консоль сообщения 'error: elem is not exist':

lst = [1, 2, 3] try: print(lst[4]) except: print('error: elem is not exist')

После выполнения кода выведется:

'error: elem is not exist'

После изучения конструкции try-except стиль написанного вами кода должен измениться. Теперь все места, в которых может возникнуть исключительная ситуация, нужно оборачивать в try, а в блоке except прописывать реакцию на это исключение.

Спросите у пользователя два числа. Поделите одно на другое. Поймайте исключительную ситуацию деления на ноль.

Спросите у пользователя число. Найдите квадратный корень из этого числа. Поймайте исключительную ситуацию извлечения корня из отрицательного числа.

Дан список. Спросите у пользователя целое число. Получите элемент списка, номер которого ввел пользователь. Поймайте исключительную ситуацию, которая случится, если пользователь ввел число вне диапазона списка.

Дан следующий код:

num = '5' res = num + 2 print(res)

Что не так с этим кодом? Исправьте его недостатки.

Дан следующий код:

lst = [1, 2, 3, 4] def getElem(iter): print(iter[4]) getElem(lst)

Что не так с этим кодом? Исправьте его недостатки.



Чат с GPT Компилятор