Предыдущий урок: 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()
Вывод:
Что-то пошло не так при записи в файл
Программа будет работать и закроет файл.
Далее: Инструкции и выражения