Python 通过回溯存储并引发最后一个异常

Jay*_*shi 5 python exception python-2.7

我的 python 代码中有一个重试机制。如果所有尝试都以某种方式失败,我想提出例外

像这样的东西:

last_exc = None
for i in range(3):
    try:
        raise Exception(i)
    except Exception as e:
        last_exc = e        
else:
    raise last_exc
Run Code Online (Sandbox Code Playgroud)

但问题是我没有在日志中得到确切的回溯。我刚刚收到以下消息:

Traceback (most recent call last):
  File "snippet.py", line 8, in <module>
    raise e
Exception: 2
Run Code Online (Sandbox Code Playgroud)

我期待raise Exception(i)(第 4 行)作为异常中的回溯。该行为仅适用于 python 2.7。

如何设置我正在引发的异常(在上一个异常中引发)的确切回溯?