Ruff jump-statement-in-finally (B012)

jump-statement-in-finally в Ruff проверяет код на предупреждение B012. Правило относится к группе flake8-bugbear.

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

Такая конструкция часто указывает на скрытую ошибку, неожиданное поведение Python или слишком хрупкий код.

Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила jump-statement-in-finally и пример ниже.

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

def speed(distance, time):
    try:
        return distance / time
    except ZeroDivisionError:
        raise ValueError("Time cannot be zero")
    finally:
        return 299792458  # `ValueError` is silenced

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

def speed(distance, time):
    try:
        return distance / time
    except ZeroDivisionError:
        raise ValueError("Time cannot be zero")

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

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