#13 - Исключения (Конструкция try - except)

#13 - Исключения (Конструкция try - except)

В уроке мы рассмотрим исключения в языке Python. Мы рассмотрим конструкцию try except для отлова ошибок и вывода информации про них. Также мы рассмотрим операторы finally и else.

Видеоурок

Что такое исключение?

Предположим, что вы разработали программу «Текстовый редактор». В программе пользователь может создать новый файл, вписать в него данные и далее сохранить файл в системе.


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


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


Получается, исключение - это ошибка, что возникает в ходе работы самой программы. Отслеживать такие ошибки при помощи условных операторов не всегда возможно, ведь программа уже запущена, поведение пользователя нам неизвестно заранее, а значит и «ловить» ошибку нам нужно в момент её создания.


Отлов ошибок

Для вышеописанного случая как раз и нужна конструкция try except для отлова ошибок в момент их создания. 


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


Реализации конструкции try except

Для добавления отслеживания ошибок можно прописать следующий код:

try: # Пробуем что-то сделать
	k = 1 / 0 # Деление на ноль
except ArithmeticError: # Отслеживаем на арифметическую ошибку
	print ("Найдена ошибка") # Мы нашли ошибку
	k = 0 # Наша переменная теперь будет равна 0

print(k) # Просто выводим переменную

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


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


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

Исходный код

Исключения в действии
try:
	x = int (input ())
except ValueError:
	print ("Вы ввели не число")
	x = 0
try:
	y = int (input ())
except ValueError:
	print ("Вы ввели не число")
	y = 0
else:
	print ("Все верно")
finally:
	print ("Выполнится 100%")
	
try:
	res = x / y
except ZeroDivisionError:
	print ("Вы ввели 0")
	res = 0
print (res)

Онлайн редактор кода

Загрузка...

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Изучение Python до профи / Основы, Django, TKinter
Уроки Python Django / Создание сайта
12 уроков
Создание игры на Python 3 с PyGame
5 уроков
Комментарии для сайта Cackle