请考虑以下代码段:
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,而又不会抛出该初始化?
答案 0 :(得分:3)
自动对焦,除了手动设置__cause__
之外,别无其他方法。
但是由于您创建了自定义异常,因此这可能会有所帮助:
class MyCustomException(Exception):
def __init__(self, cause=None)
self.__cause__ = cause