Найти тему

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

Почти во всех языках программирования имеется такая вещь, как обработка исключений. Исключение - это непредвиденная (исключительная) ситуация, которая может произойти во время выполнения программы. Например, в качестве делителя пользователь может ввести число 0, а на ноль делить нельзя. Это будет ошибка времени выполнения, и программа, скорее всего, завершится аварийно.

И если деление на ноль можно хотя бы предвидеть и принять меры, то многие вещи предвидеть невозможно (например, отсутствие файла в нужном месте или разрыв соединения с Интернет). И, поскольку предусмотреть это нельзя (точнее, можно, но вы не будете точно знать, что пошло не так), то надо как-то выделить блок кода, где может произойти исключение, и сделать так, чтобы программа не завершилась аварийно.

Вот пример на Python, где происходит ошибка времени выполнения:

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

Обработать исключение в Python, как и во многих других языках, можно с помощью try. Только не забываем, что это долбаный Python, поэтому в конце этого слова надо ставить двоеточие. Вообще конструкция выглядит так:

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

Интерпретатор Python начинает выполнение кода. Если после слова try всё идёт хорошо, то блок except будет пропущен. Если же в блоке try что-то пошло не так, то в месте обнаружения ошибки выполнение когда прерывается и интерпретатор начинает выполнять код в блоке except.

Обработка исключения с помощью оператора try называется перехватом (catch) исключения. В примере ниже блок except печатает сообщение об ошибке, что не даёт особой радости пользователю. В общем же случае перехват исключения дает возможность устранить неприятность, попытаться еще раз (например, прочитать файл) или хотя бы завершить программу без аварийной остановки.

-2

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.

Наука
7 млн интересуются