Предыдущий урок: Python PIP
Блок try позволяет проверить блок кода на ошибки.
Блок except обрабатывает ошибку.
Блок finally позволяет выполнять код, независимо от результата блоков try и except.
Обработка исключений
Когда возникает ошибка или исключение, как его еще называют, Python обычно останавливает работу и генерирует сообщение об ошибке.
Эти исключения можно обрабатывать с помощью оператора try:
Блок try генерирует исключение, потому что x не объявлен:
try:
print(x)
except:
print("Ошибка")
Вывод:
Ошибка
Поскольку блок try вызывает ошибку, будет выполнен блок except. Без блока try программа остановится и вызовет ошибку:
print(x)
Вывод:
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
x
NameError: name 'x' is not defined
Несколько исключений
Вы можете определить столько исключений, сколько хотите.
try:
print(x)
except NameError:
print("Переменная x не существует")
except:
print("Что-то пошло не так")
Вывод:
Переменная x не существует
Else
Вы можете использовать ключевое слово else, для определения блока кода, который должен быть выполнен, если ошибок не было.
try:
print("Привет")
except:
print("Что-то пошло не так")
else:
print("Ошибок не обнаружено")
Вывод:
Привет
Ошибок не обнаружено
Finally
Блок finally, если указан, будет выполняться независимо от того, возникает ошибка в блоке try или нет.
try:
print(x)
except:
print("Что-то пошло не так")
finally:
print("Блок 'try except' завершен")
Вывод:
Что-то пошло не так
Блок 'try except' завершен
Это может быть полезно для закрытия файлов и очистки ресурсов.
Попробуем открыть и записать в файл, который не доступен для записи:
try:
f = open("demofile.txt") # фал должен быть создан, иначе исключение FileNotFound
f.write("Lorum Ipsum")
except:
print("Что-то пошло не так при записи в файл")
finally:
f.close()
Вывод:
Что-то пошло не так при записи в файл
Программа будет работать и закроет файл.
Далее: Инструкции и выражения





