Skip to content

Исключения

Все исключения наследуются от UnihraError.

python
from unihra.exceptions import (
    UnihraError,
    UnihraConnectionError,
    UnihraValidationError,
    UnihraDependencyError,
    UnihraStorageError,
    UnihraApiError,
    InsufficientCreditsError,
    ParserError,
    AnalysisServiceError,
    CriticalOwnPageError,
    ReportGenerationError,
    TripletAnalysisError,
)

Иерархия

UnihraError
├── UnihraConnectionError     # Сбои сети / таймауты
├── UnihraValidationError     # Неверный ввод (пустой список конкурентов и т.д.)
├── UnihraDependencyError     # Отсутствует опциональный пакет (pandas, openpyxl)
├── UnihraStorageError        # Не удалось записать файлы в analyze_and_save()
└── UnihraApiError            # API вернул ошибку
    ├── InsufficientCreditsError # HTTP 402 — баланс ниже стоимости задачи
    ├── ParserError           # код 1001 — запрошенная страница не вошла в анализ
    ├── AnalysisServiceError  # код 1002 — внутренний сбой анализа
    ├── CriticalOwnPageError  # код 1003 — ваша страница недоступна
    ├── ReportGenerationError # код 1004 — не удалось сгенерировать отчёт
    └── TripletAnalysisError  # код 1005 — извлечение графа знаний не удалось

Использование

python
from unihra import UnihraClient, UnihraError
from unihra.exceptions import CriticalOwnPageError, InsufficientCreditsError, ParserError

client = UnihraClient(api_key="ВАШ_КЛЮЧ")

try:
    result = client.analyze(
        own_page="https://example.com",
        competitors=["https://comp.com"],
    )
except InsufficientCreditsError:
    print("Недостаточно кредитов. Проверьте client.get_limits() и пополните баланс.")
except CriticalOwnPageError:
    print("Ваша страница недоступна. Проверьте URL и попробуйте снова.")
except ParserError as e:
    print(f"Запрошенная страница конкурента не вошла в анализ: {e}")
except UnihraError as e:
    print(f"Ошибка API: {e}")

Атрибуты UnihraApiError

python
try:
    result = client.analyze(...)
except UnihraApiError as e:
    print(e.code)     # int, например 1001
    print(e.message)  # str, человекочитаемое сообщение
    print(e.raw)      # dict, полный payload ошибки от API

Справочник кодов ошибок

КодИсключениеПричина
402InsufficientCreditsErrorБаланс аккаунта ниже стоимости задачи (1 кредит стандартный анализ, 5 с триплетами)
1001ParserErrorЗапрошенная страница не вошла в анализ
1002AnalysisServiceErrorВнутренний сбой сервиса анализа
1003CriticalOwnPageErrorВаша страница вернула ошибку или недоступна
1004ReportGenerationErrorНе удалось скомпилировать итоговый отчёт
1005TripletAnalysisErrorИзвлечение графа знаний не удалось
9999UnihraApiErrorНеизвестная ошибка