Ruff try-consider-else (TRY300)

try-consider-else в Ruff проверяет код на предупреждение TRY300. Правило относится к группе tryceratops.

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

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

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

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

import logging


def reciprocal(n):
    try:
        rec = 1 / n
        print(f"reciprocal of {n} is {rec}")
        return rec
    except ZeroDivisionError:
        logging.exception("Exception occurred")

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

import logging


def reciprocal(n):
    try:
        rec = 1 / n
    except ZeroDivisionError:
        logging.exception("Exception occurred")
    else:
        print(f"reciprocal of {n} is {rec}")
        return rec

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

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