如何在Python中引发额外错误并在堆栈跟踪中保持原因?

时间:2017-09-07 10:32:55

标签: python python-3.x exception-handling

我写了

try:
    ...
except Exception as e:
    raise ValueError(e, "Was unable to extract date from filename '%s'" % filename)

现在,当try块内发生异常时,我会丢失有关它的信息。我堆栈跟踪打印我只看到带有raise语句的行号,并且没有关于实际e发生的位置的信息。

如何解决?

1 个答案:

答案 0 :(得分:1)

使用raise exc from another_exc

try:
    ...
except Exception as e:
    raise ValueError("Was unable to extract date from filename '%s'" % filename) from e

添加from e将确保通过连接两个回溯上述异常是导致以下异常的直接原因“