В Python, как создать исключение из другого исключения, не вызывая его? - PullRequest
0 голосов
/ 19 февраля 2019

Рассмотрим этот фрагмент:

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)

Есть ли способ создать MyCustomException со всеми инициализациями, которые from e делает для меня (установка __cause__ или что-либо еще), но не выбрасывая его

1 Ответ

0 голосов
/ 19 февраля 2019

AFAIK, нет другого способа, кроме как установить __cause__ вручную.

Но поскольку вы создаете пользовательское исключение, это может быть полезно:

class MyCustomException(Exception):
    def __init__(self, cause=None)
        self.__cause__ = cause
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...