else выполняется, если блок try завершился нормально без исключения; finally предназначен для завершающих действий и выполняется при обычных способах выхода из конструкции.
Как работают блоки else и finally в конструкции try/except?
else выполняется, если блок try завершился нормально без исключения; finally предназначен для завершающих действий и выполняется при обычных способах выхода из конструкции.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
else выполняется, если блок try завершился нормально без исключения; finally предназначен для завершающих действий и выполняется при обычных способах выхода из конструкции.
Исключение из else не обрабатывается соседним except этого try. finally срабатывает и при return или распространении ошибки, но return внутри finally может подавить исходный результат или исключение, поэтому его следует избегать. Аварийное завершение процесса не даёт абсолютной гарантии выполнения finally.