我需要在提高声明后返回True Value。在这里我需要提高语句,并且它应该返回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
答案 0 :(得分:5)
从函数中返回和冒泡异常是互斥的。通过 {/ em> raise
和return
退出函数是没有意义的,您必须选择。
此处finally
阻止将强制return
,撤消您引发的异常。如果这不是你想要的,你需要让异常传播而不在finally
块中被覆盖,并理解如何在调用者中适当地处理异常。