Skip to main content
 首页 » 编程设计

python之我们可以在 raise 声明后返回吗

2025年05月04日26arxive

我需要在 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 中被覆盖,并了解如何在调用方中适本地处理异常。