У меня есть блок try:finally
, который должен выполняться всегда (исключение или нет), если не возникает конкретное исключение. Ради аргумента, скажем, это ValueError
, поэтому я прошу, если я могу реализовать:Всегда выполняйте блок finally, за исключением одного исключения
try:
stuff()
except Exception as e:
if type(e) is ValueError: raise
#do important stuff
raise
#do important stuff
в более элегантной моды, чтобы пропустить копировать-наклеивать #importantstuff
. Если бы я управлял Python это будет выглядеть примерно так:
try:
stuff()
finally except ValueError:
#do important stuff
Ввод #importantstuff
в функции не ответ, но не возможно есть.
Нет, нет никакого способа сделать это. 'finally' - это вещи, которые должны всегда происходить. Почему бы не извлечь «важный материал» методу, который вы можете вызвать в обоих местах? Что означает «не ответ, но не возможно», значит? – jonrsharpe
_ "try: finally block, который должен выполняться всегда (** исключение или нет **)" _ - Похоже, вы не хотите попробовать, кроме – IanAuld