Обработка исключений
Практика
Вспомним:
Что такое ошибка в Python?
Какие два типа ошибок выделяют?
Исключения (Exceptions) — это логические ошибки, возникающие во время выполнения кода (в отличие от синтаксических, которые возникают ДО выполнения кода)
Компьютер пытается сделать то, что мы его просим, но не может. Python готов к этому и обрабатывает такие ситуации — и выбрасывает (инициирует) исключение
3/0
~Traceback (most recent call last): # обратная трассировка
~ File "/home/runner/test/main.py", line 1, in <module>
~ 3/0
~ZeroDivisionError: division by zeroДва подхода к обработке исключений:
LBYL (Look Before You Leap: "Посмотри, прежде чем прыгнуть")
Суть в том, чтобы проверить исключительную ситуацию перед выполнением действия
number = 10
divisor = 0
if divisor != 0:
result = number / divisor
else:
result = None
# значение None для представления неопределенного состоянияEAFP (Easier to Ask for Forgiveness than Permission: "Проще попросить прощения, чем разрешения")
Если операция завершается неудачей, исключение будет перехвачено в блоке исключения
Конструкция try...except:
Что делать, если мы не знаем, какое исключение может возникнуть?
конструкции try-except-else-finally:
KeyboardInterrupt — тоже вид исключения, который можно обработать. Тогда команда Ctrl + C перестанет срабатывать.
Помимо перехвата исключений мы можем также выдавать (инициировать) исключения в коде:
raise — возбудить исключение
Практика
Last updated