python中是否有一种方法可以仅在try/except块中引发异常时执行一段代码



我有一个try/except块,它有多个except块。我希望只有在引发任何异常的情况下才能执行一段代码。有点像finally语句,但无论是否引发异常,finally都会执行。我是否只需要将该代码添加到每个except块中?

您可以在异常处理程序中进行自己的类型检查,以处理特定类型和通用代码。

def it_will_end_in_tears():
raise ValueError("bad value")
try:
val = it_will_end_in_tears()
except (TypeError, ValueError) as e:
if isinstance(e, TypeError):
print("type error stuff")
elif isinstance(e, ValueError):
print("value error stuff")
print("common stuff")
finally:
print("finally")

我将声明一个布尔execute_code = False,并在每个except块中将其设置为True,而不是将代码复制+粘贴到每个exception块中。在整个try/except之后,添加if execute_code:,然后实现如果if块内发生一次异常则执行的代码。

最新更新