try:
x = 1 / 0
except ZeroDivisionError:
print("Ошибка деления на ноль")
finally:
print("Этот блок всегда выполнится")
При выполнении кода произойдет следующее:
try
будет предпринята попытка деления 1
на 0
, что приведет к исключению ZeroDivisionError
.except ZeroDivisionError
, и на экран будет выведено сообщение "Ошибка деления на ноль".finally
выполнится в любом случае, независимо от того, было ли исключение или нет. Поэтому на экран будет выведено сообщение "Этот блок всегда выполнится".Результат работы программы:
Ошибка деления на ноль
Этот блок всегда выполнится
Этот код демонстрирует работу конструкции try...except...finally
в Python для обработки исключений.
try
блок:
Внутри блока try
находится потенциально опасный код, который может вызвать исключение. В данном случае, это деление 1 / 0
, которое вызывает исключение ZeroDivisionError
.
except
блок:
Если в блоке try
происходит исключение, соответствующий блок except
обрабатывает это исключение. В нашем случае, блок except ZeroDivisionError
перехватывает исключение ZeroDivisionError
и выводит сообщение "Ошибка деления на ноль" в консоль.
finally
блок:
Блок finally
выполняется всегда, независимо от того, произошло исключение в блоке try
или нет, и было ли это исключение обработано в блоке except
или нет. В данном случае, блок finally
выводит сообщение "Этот блок всегда выполнится" в консоль.
При выполнении этого кода на экран будет выведено:
Ошибка деления на ноль
Этот блок всегда выполнится
Исключение ZeroDivisionError
возникло в блоке try
. Затем управление перешло в блок except ZeroDivisionError
, который обработал исключение и вывел соответствующее сообщение. После этого выполнился блок finally
, который также вывел свое сообщение. Блок finally
гарантирует, что определенные действия (например, закрытие файлов или освобождение ресурсов) будут выполнены независимо от того, возникла ошибка или нет.
Конструкция try...except...finally
является важным инструментом для написания надежного и устойчивого к ошибкам кода на Python.