#14 – Обработчик исключений. Конструкция «try - except»

#14 – Обработчик исключений. Конструкция «try - except»

При выполнении программы могут возникнуть различного рода ошибки (исключения). Нам необходимо уметь отслеживать подобные ошибки и предотвращать их. В ходе урока мы изучим конструкцию «try - except» для отлова и обработки исключений.

Видеоурок

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

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


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


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


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


Отлов ошибок

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


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


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

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

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

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

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


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


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

Исходный код

Весь код будет доступен после подписки на проект!

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

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

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

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

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

Нейронные сети / Изучение Python OpenCV
9 уроков
Изучение PyQt5 / Графический интерфейс на Python
6 уроков
Разработка Telegram Ботов на Python
7 уроков
Уроки Python Django / Создание сайта
12 уроков
Изучение Flask / Создание сайта на Python
6 уроков
Разработка игр на Python с нуля / Уроки Pygame
10 уроков
Комментарии (2)
Добавить комментарий

Захар 22 января 2023 в 19:00

Еще 1 мини-програмку создал по тем знаниям которые получил

x = 0
while x == 0:
    try:
        user_choose_file = input('Enter the name of file which you want: ')
        user_choose_type_file = input('Enter what you want to do with file: ')
        if user_choose_type_file == 'read':
            user_choose_type_file = 'r'
        elif user_choose_type_file == 'write':
            user_choose_type_file = 'w'
        user_file = open(user_choose_file, user_choose_type_file)
        x += 1
    except ValueError or NameError:
        print('Wrong name of file or regime')
        x = 0

if user_choose_type_file == 'w':
    user_file.write(input('Write what you want add to the file: '))
elif user_choose_type_file == 'r':
    user_result_read = user_file.read(int(input('Enter the number how much symbols you want to read: ')))
    print(user_result_read)
user_file.close()
Ответить

Sergey 28 декабря 2022 в 04:55

>> Открытие и чтение файла
>> Откройте файл при помощи команды «x». Команда позволяет открыть файл для чтения, если такового файла нет.

Команда позволяет открыть файл для ЗАПИСИ.
Ответить