我们可以在提高声明后返回

Pra*_*wan 1 python exception-handling python-2.7

我需要在提高声明后返回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
Run Code Online (Sandbox Code Playgroud)

Sha*_*ger 5

从函数中返回和冒泡异常是互斥的.这是荒谬的退出功能 raisereturn,你必须选择.

finally这里的块将强制a return,撤消你引发的异常.如果这不是你想要的,你需要让异常传播而不在finally块中重写,并理解如何在调用者中适当地处理异常.