Ruff raise-within-try (TRY301)

raise-within-try в Ruff проверяет код на предупреждение TRY301. Правило относится к группе tryceratops.

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

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

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

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

def bar():
    pass


def foo():
    try:
        a = bar()
        if not a:
            raise ValueError
    except ValueError:
        raise

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

def bar():
    raise ValueError


def foo():
    try:
        a = bar()  # refactored `bar` to raise `ValueError`
    except ValueError:
        raise

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

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