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

时间:2016-11-04 05:52:01

标签: python python-2.7 exception-handling

我需要在提高声明后返回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

1 个答案:

答案 0 :(得分:5)

从函数中返回和冒泡异常是互斥的。通过 {/ em> raisereturn退出函数是没有意义的,您必须选择。

此处finally阻止将强制return,撤消您引发的异常。如果这不是你想要的,你需要让异常传播而不在finally块中被覆盖,并理解如何在调用者中适当地处理异常。