Ruff default-except-not-last (F707)

default-except-not-last в Ruff проверяет код на предупреждение F707. Правило относится к группе Pyflakes.

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

Pyflakes отмечает конструкции, которые часто являются настоящими ошибками: неиспользуемые имена, неопределённые переменные и неверные выражения.

Если валидатор показывает это предупреждение, исправьте место, на которое указывает Ruff, ориентируясь на смысл правила default-except-not-last и пример ниже.

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

def reciprocal(n):
    try:
        reciprocal = 1 / n
    except:
        print("An exception occurred.")
    except ZeroDivisionError:
        print("Cannot divide by zero.")
    else:
        return reciprocal

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

def reciprocal(n):
    try:
        reciprocal = 1 / n
    except ZeroDivisionError:
        print("Cannot divide by zero.")
    except:
        print("An exception occurred.")
    else:
        return reciprocal

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

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