Языки программирования
Обработка исключений
Примеры ошибок
Обработка исключений
Инструкция try...except...else...finally
Обработка исключения «Деление на ноль»
Обработка нескольких исключений
Пример перехвата всех исключений
Отсутствие блока except
Пример. Суммирование неопределенного количества чисел
Инструкция with...as
Протокол менеджеров контекста
Инструкция with as при работе с файлами
Классы встроенных исключений
Регулярные выражения
Регулярные выражения
Проверка правильности ввода даты
Проверка правильности ввода даты
Пример использования многострочного режима
Проверка наличия целого числа в строке
Отсутствие привязки к началу или концу строки
Привязка к началу и концу строки
Метасимволы
Квадратные скобки
Синтаксис регулярных выражений
Стандартные классы
Модуль
Использование псевдонимов
Инструкция from
Инструкция from
Создание своего модуля на Python
Пакеты
Вопросы
16.99M
Category: programmingprogramming

Обработка исключений

1. Языки программирования

Лекция 7

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. Инструкция try...except...else...finally

5

6. Обработка исключения «Деление на ноль»

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

7. Обработка нескольких исключений

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

8. Пример перехвата всех исключений

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

9. Отсутствие блока except

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

10. Пример. Суммирование неопределенного количества чисел

10

11. Инструкция with...as

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

12. Протокол менеджеров контекста

12

13. Инструкция with as при работе с файлами

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

14. Классы встроенных исключений

14

15. Регулярные выражения

• Регулярные выражения предназначены для
выполнения в строке сложного поиска или замены.
В языке Python использовать регулярные выражения
позволяет модуль re. Прежде чем задействовать
функции из этого модуля, необходимо подключить
модуль с помощью инструкции:
• import re
15

16. Регулярные выражения

• 1) р = re.compile(r"^\w+$")
• 2) р = re.compile("^\\w+$")
Данные символы имеют специальное назначение:
16

17. Проверка правильности ввода даты

17

18. Проверка правильности ввода даты

18

19. Пример использования многострочного режима

19

20. Проверка наличия целого числа в строке

20

21. Отсутствие привязки к началу или концу строки

21

22. Привязка к началу и концу строки

22

23. Метасимволы

23

24. Квадратные скобки

24

25. Синтаксис регулярных выражений

25

26. Стандартные классы

26

27. Модуль

• Модулем в языке Python называется любой
файл с программным кодом. Каждый модуль
может импортировать другой модуль,
получая, таким образом, доступ к атрибутам
(переменным, функциям и классам),
объявленным внутри импортированного
модуля. Мо-дуль может быть написан не
только на Python, а например, на C или C++.
Получить имя модуля позволяет атрибут
__name__.
27

28. Использование псевдонимов

• Если название модуля слишком длинное
или неудобное по каким-то причинам, то
для него можно создать псевдоним с
помощью ключевого слова as:
28

29. Инструкция from

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

30. Инструкция from

• Импортируемые атрибуты можно
разместить на нескольких строках, если их
много, для лучшей читаемости кода:
Второй вариант формата инструкции from позволяет
импортировать из модуля все идентификаторы:
30

31. Создание своего модуля на Python

Создадим файл mymodule.py, в которой определим какиенибудь функции:
Теперь в этой же папке создадим другой файл, например
main.py
31

32. Пакеты

• Пакетом называется каталог с модулями, в
котором расположен файл инициализации
__init__.py. Файл инициализации может быть
пустым или содержать код, который будет
выполнен при первом обращении к пакету. В
любом случае он обязательно должен
присутствовать внутри каталога с модулями.
32

33. Вопросы

• 1. Что произойдет с программой в случае
исключения, если вы не предусмотрите его
обработку?
• 2. Назовите два способа, с помощью которых
можно было бы организовать выполнение
заключительных операций независимо от того,
возникло исключение или нет.
• 3. Для чего служит инструкция try?
• 4. Для чего служит инструкция with/as?
33

34.

• 5. Какой командой можно подключить модуль
для работы с регулярными выражениями?
• 6. Что называется модулем в Python?
• 7. С помощью какой инструкции можно
подключить определенные атрибуты модуля?
• 8. Приведите пример создания
пользовательского модуля в Python.
• 9. Что такое пакет в Python?
34
English     Русский Rules