Найти тему
blogproger

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

Исключениями в языке программирования python называют ошибки, возникшие в ходе работы программы. Данная ошибка останавливает дальнейшую работу программы.

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

Как обрабатывать исключения в python

Типичным примером исключения является деление на ноль, невозможность чтения данных из файла (устройства), нехватка доступной памяти, доступ к приватной области памяти. В языке программирования python обработка исключений происходит благодаря нескольким ключевым словам:

  1. try - Операция или код, который может вызвать ошибку помещается после данной команды
  2. except - Код, который будет выполнен при возникновении ошибки помещается после данного блока
  3. finally - Данная команда похожа на except, но выполняется всегда, независомо от наличия или отсутствия ошибки
  4. Else - Данная команда запускает код после себя, если не произошло ошибок

Обработка исключений с пмощью try и execept

Давайте приведём стандартный пример. Все знают, что на ноль делить нельзя, но, если мы это сделаем, наша программа остановится на данном моменте, выдав ошибку. Как избежать такого:

try:
b = 21 / 0
except:
print('На ноль делить нельзя')

Не забывайте, что ошибки бывают разные, поэтому если вы укажите конкретную, except будет реагировать только на неё, например:

a = 0
try:
b = 21 / a
except ZeroDivisionError:
print('
На ноль делить нельзя')

Если возникнет другая ошибка помимо ZeroDivisionError (деление на ноль невозможно) , то программа будет остановлена. Можно использовать для разных типов ошибок свой обработчик и действия программы.

Обработка исключений с помощью finally

При обработке исключений можно после блока try использовать блок finally. Данная команда похожа на except, но выполняется всегда, независимо от наличия или отсутствия ошибки. Давайте представим ситуацию, когда вам нужно обязательно что-то сохранить, хоть есть ошибка или нет. Проведём параллель с файлом, он сохранятся только при закрытии:

file = open('file.txt', 'r')

try:
lines = file.readlines()
print(lines[5])
except:
Tk().withdraw() # открывает окно выбора папок
text = askopenfilename() # прикрепляет файл
print(text)

finally:
file.close()

Обработка исключений с помощью Else

Иногда нужно выполнить определенные действия, когда код внутри блока try не вызвал исключения. Например:

b = 4
c = int(input('c = '))

try:
a = b / c

except ZeroDivisionError:
print('
На ноль делить нельзя')

else:
print(a)

Если пользователь присвоит переменной "с" ноль, то появится исключение, однако при отсутствии исключений выведется значение из переменной 'a'

Python для самых начинающих

Полезные ссылки :

Ставьте лайки, рассказывайте друзьям и обязательно комментируйте! =)