В обработчике данных используется конструкция try/except/finally. Внутри try произошла ошибка, она поймана в except. Что произойдёт с кодом в блоке finally?

AПропускается, если исключение уже было обработано подходящим блоком except
BВыполняется в любом случае: и при ошибке, и при штатном завершении блока try
CВыполняется лишь при штатном завершении блока try без исключений в этом блоке
DВыполняется лишь при необработанном исключении, которое не поймал ни один except
Правильный ответ. Блок finally выполняется всегда — это место для гарантированного освобождения ресурсов.

Разбор

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

Проверь себя · 1/3разбор после ответа
Вы поймали ошибку, залогировали её и хотите пробросить дальше, чтобы пайплайн упал и трейс сохранился. Что нужно сделать внутри except?
Тренировать Python в Telegram

Ещё вопросы по теме «Исключения и отладка»