我需要在 raise 语句后返回真值。在这里我需要 raise 语句并且它应该返回 True 值。如果我使用 finally 语句,它不会引发异常 block ,如果我不使用 finally,那么异常 block 将使用 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 退出一个函数是荒谬的,你必须选择。
此处的 finally block 将强制执行 return,撤消您引发的异常。如果这不是您想要的,您需要让异常传播而不在 finally block 中被覆盖,并了解如何在调用方中适本地处理异常。
