6.25M
Категория: ПрограммированиеПрограммирование

Исключения в Python

1.

а также менеджер контекста…

2.

Исключения - это извещения интерпретатора, возбуждаемые в
случае возникновения ошибки в программном коде или при
наступлении какого-либо события. Если в коде не
предусмотрена обработка исключения, то выполнение
программы прерывается, и выводится сообщение об ошибке.
1. Синтаксические - это ошибки в имени оператора или
функции, отсутствие закрывающей или открывающей кавычек
и т. д., т. е. ошибки в синтаксисе языка.
2. Логические - это ошибки в логике программы, которые
можно выявить только по результатам ее работы.
3. Ошибки времени выполнения - это ошибки, которые
возникают во время работы программы. Причиной являются
события, не предусмотренные программистом. Классическим
примером служит деление на ноль
2

3.

>>>
print("Heт завершающей кавычки!)
SyntaxError: EOL while scanning string literal
>>>
def test(x, у) : return х/у
>>> test(4, 2) # Нормально
2.0
>>> test(4, 0) # Ошибка
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
test(4, 0) # Ошибка
File "<pyshell#2>", line 1, in test
def test(x, у): return х/у
ZeroDivisionError: division Ьу zero
3

4.

В языке Python исключения возбуждаются не
только при ошибке, но и как уведомление о
наступлении каких-либо событий:
>>> "Строка".indех("текст")
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
"Строка".indех("текст")
ValueError: substring not found
4

5.

5

6.

Вложенные обработчики
6

7.

Получение информации об исключении
7

8.

На практике следует избегать пустых инструкций except, т. к.
можно перехватить исключение, которое является лишь
сигналом системе, а не ошибкой!
Блок else и finally
Результат выполнения при
отсутствии исключения
Результат выполнения при
наличии исключения
8

9.

При наличии исключения и отсутствии блока except инструкции
внутри блока finally будут выполнены, но исключение не
будет обработано
9

10.

10

11.

Язык
Python поддерживает протокол менеджеров
контекста. Этот протокол гарантирует выполнение
завершающих действий (например, закрытие файла)
вне зависимости от того, произошло исключение
внутри блока кода или нет. Для работы с протоколом
предназначена инструкция with ... as.
Метод __enter__ () вызывается после создания объекта.
Значение, возвращаемое этим методом, присваивается
переменной, указанной после ключевого слова as. Если
переменная не указана, возвращаемое значение игнорируется.
• Далее выполняются инструкции внутри тела инструкции
with. Если при выполнении возникло исключение, то
управление передается методу__exit__ ()
11

12.

12

13.

Некоторые встроенные объекты поддерживают
протокол по умолчанию - например, файлы. Если
в инструкции with указана функция open (), то
после выполнения инструкций внутри блока
файл автоматически будет закрыт.
13

14.

14
English     Русский Правила