在Python中,如何在不引发另一个异常的情况下构造一个异常?

时间:2019-02-19 14:10:46

标签: python exception exception-handling

请考虑以下代码段:

all_errors = []
for i in something:
    try:
        do_something_that_throws(i)
    except Exception as e
        # what I know I can do:
        raise MyCustomException(i) from e
        # what I actually want:
        # all_errors.append(MyCustomException(i) from e)

是否可以使用from e为我进行的所有初始化(设置__cause__或其他任何操作)构造MyCustomException,而又不会抛出该初始化?

1 个答案:

答案 0 :(得分:3)

自动对焦,除了手动设置__cause__之外,别无其他方法。

但是由于您创建了自定义异常,因此这可能会有所帮助:

class MyCustomException(Exception):
    def __init__(self, cause=None)
        self.__cause__ = cause