我需要在raise语句后返回True值。这里我需要使用raise语句并返回True值。如果我使用finally语句,它将不会执行异常块,而如果我不使用finally,则异常块将在raise语句执行后执行,之后我将无法使用retcodecmd变量。以下是我的Python代码:
try:
something....
except ValueError:
self._retcodecmd = True
raise SomeException(something)
finally:
if self._retcodecmd is True:
return True
else:
return False
raise
和return
,但是你可以返回多个值,其中第一个与你当前使用的相同,第二个指示是否出现异常return True, sys.exc_info() == (None, None, None)
或类似但更适合上下文的内容。但从根本上讲,在我所知道的每种语言中,异常和返回是互斥的。如果你遵循异常路径,你就不能在不取消异常传播的情况下遵循返回路径,反之亦然。 - ShadowRangerfinally
子句中使用return
。当您引发错误时,finally
子句将运行,然后再引发您的错误。 - spectras