我有一个函数f()
,如果引发ExceptionA
或ExceptionB
,则需要调用该函数。仅在提高A()
的情况下才需要致电ExceptionA
,并且只有在提高B()
的情况下才需要致电ExceptionB
。如果都未引发异常,则无需调用任何函数。
考虑以下代码:
try:
some_flaky_function()
except ExceptionA:
A()
f()
except ExceptionB:
B()
f()
此代码将完全满足我的需要,但是我正在寻找一种在两个f()
块中都不对except
进行样板调用的方法。我知道finally
块将执行而不管异常,但它也会在成功尝试后执行。此外,即使上述代码包装在一个函数中,在return
块 still 中的函数调用之后放置try
也会执行finally
语句。无论如何,只要调用f()
就能编写上述代码?