Как получается, что блокfinally выполняется без исключений, но не log.info после логики?Python

Программы на Python
Anonymous
Как получается, что блокfinally выполняется без исключений, но не log.info после логики?

Сообщение Anonymous »

У меня есть следующий фрагмент кода:

Код: Выделить всё

logger.info("Checkpoint 1")
try:
queue.push(item) # This is where the exception could occur
logger.info("Checkpoint 2")
except queues.errors.NotAllowedError as exc:
logger.info("Error 1")
raise exc
except Exception as e:
logger.info("Error 2")
finally:
logger.info("Checkpoint 3")
Я ожидаю, что программа выполнит печать (если все пойдет хорошо):

Код: Выделить всё

Checkpoint 1
Checkpoint 2
Checkpoint 3
И если что-то пойдет не так, например, следует напечатать:

Код: Выделить всё

Checkpoint 1
Error 2
Checkpoint 3
Но в моем случае моя программа выводит:

Код: Выделить всё

Checkpoint 1
Checkpoint 3
В какой ситуации это могло произойти? Разве Exception не охватывает все возможные исключения?

Подробнее здесь: https://stackoverflow.com/questions/786 ... not-the-lo

Вернуться в «Python»