Mojo Academy · Урок

Очистка с finally

Выполняйте код независимо от происходящего.

Урок 4 из 413 шагов

«Очистка с finally» — бесплатный урок Mojo Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Mojo Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Mojo Academy содержит 4 уроков всего.

Код, который выполняется всегда

Некоторые действия по очистке должны выполняться и при успехе, и при сбое, например закрытие файла. Блок finally в Mojo гарантирует это.

Добавление finally

Блок finally располагается после try и except. Код в нём выполняется независимо от того, чем завершается блок try.

try:
    use_resource()
finally:
    cleanup()

Выполнение после успеха

Если блок try завершается без ошибок, finally всё равно выполняется сразу после него. Это гарантированный последний шаг.

Выполнение после ошибки

Если блок try вызывает ошибку, finally выполняется до того, как ошибка распространится выше. Очистка не будет пропущена.

Идеально для ресурсов

Используйте finally, чтобы освобождать открытые ресурсы: файлы, соединения или блокировки. Они закрываются даже при сбое.

try:
    var f = open("data.txt", "r")
    read_all(f)
finally:
    f.close()

try, except и finally вместе

Можно объединить все три конструкции: выполнить работу в try, восстановиться в except и в любом случае выполнить очистку в finally.

try:
    work()
except e:
    print(e)
finally:
    cleanup()

finally без except

Можно объединить finally только с try, без except. Ошибка всё равно распространится выше, но сначала выполнится очистка.

Порядок событий

Порядок прост: выполняется try, затем except, если возникла ошибка, а finally выполняется всегда последним. Каждый раз всё предсказуемо.

Не выполняйте здесь тяжёлую работу

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

Без утечек и неожиданностей

С finally ресурсы надёжно освобождаются. Программа избегает утечек даже на самых сложных и подверженных ошибкам путях выполнения.

Защитная сеть для очистки

Представляйте finally как защитную сеть под рискованным кодом: она берёт на себя очистку независимо от того, что произошло выше.

Быстрая проверка

Вспомните, когда именно выполняется блок finally.

Повторение

Вы узнали, что finally всегда выполняется после try — при успехе или сбое, — поэтому это надёжное место для освобождения файлов и ресурсов.

Можно начать бесплатно

Изучай Mojo с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Очистка с finally» бесплатный?

Да — полный текст урока «Очистка с finally» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Mojo Academy, подпишись на CoddyKit PRO. Курс Mojo Academy содержит 4 уроков всего.

Чему я научусь в уроке «Очистка с finally»?

Выполняйте код независимо от происходящего. Ты практикуешь Mojo Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Mojo Academy?

Предыдущий опыт не требуется. Mojo Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Очистка с finally»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Mojo Academy?

Да. Каждый урок Mojo Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Генерация ошибки
  2. Перехват с try/except
  3. Аннотация raises
  4. Очистка с finally
← Назад к Mojo Academy