Ruff raise-vanilla-args (TRY003)

raise-vanilla-args в Ruff проверяет код на предупреждение TRY003. Правило относится к группе tryceratops.

Почему это неправильно

Правила tryceratops помогают писать обработку исключений так, чтобы ошибки не скрывались и трассировки оставались полезными.

Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила raise-vanilla-args и пример ниже.

Пример ошибки

class CantBeNegative(Exception):
    pass


def foo(x):
    if x < 0:
        raise CantBeNegative(f"{x} is negative")

Как правильно

class CantBeNegative(Exception):
    def __init__(self, number):
        super().__init__(f"{number} is negative")


def foo(x):
    if x < 0:
        raise CantBeNegative(x)

Автоисправление

Ruff не предлагает автоисправление для этого правила.