Errors¶
Exception classes for API errors.
kwork_api.errors ¶
Исключения Kwork API.
Все исключения предоставляют понятные сообщения для отладки. Иерархия исключений:
KworkError (базовое)
├── KworkAuthError (ошибки аутентификации)
├── KworkApiError (HTTP ошибки API)
│ ├── KworkNotFoundError (404)
│ ├── KworkRateLimitError (429)
│ └── KworkValidationError (400)
└── KworkNetworkError (ошибки сети)
Classes¶
KworkApiError ¶
KworkApiError(message, status_code=None, response=None)
Bases: KworkError
Ошибка HTTP запроса к API (4xx, 5xx).
Базовый класс для HTTP ошибок API. Содержит код статуса.
Attributes:
| Name | Type | Description |
|---|---|---|
status_code |
HTTP код ответа (400, 404, 500, etc.) |
Example
try: await client.catalog.get_details(999999) except KworkApiError as e: print(f"HTTP {e.status_code}: {e.message}")
Source code in src/kwork_api/errors.py
84 85 86 87 88 89 90 91 | |
KworkAuthError ¶
KworkAuthError(
message="Authentication failed", response=None
)
Bases: KworkError
Ошибка аутентификации/авторизации.
Возникает при: - Неверном логине или пароле - Истёкшем или невалидном токене - Отсутствии прав доступа (403)
Example
try: client = await KworkClient.login("user", "wrong_password") except KworkAuthError: print("Неверные учётные данные")
Source code in src/kwork_api/errors.py
61 62 | |
KworkError ¶
KworkError(message, response=None)
Bases: Exception
Базовое исключение для всех ошибок Kwork API.
Все остальные исключения наследуются от этого класса.
Attributes:
| Name | Type | Description |
|---|---|---|
message |
Сообщение об ошибке. |
|
response |
Оригинальный HTTP response (если есть). |
Example
try: await client.catalog.get_list() except KworkError as e: print(f"Ошибка: {e.message}")
Source code in src/kwork_api/errors.py
36 37 38 39 | |
KworkNetworkError ¶
KworkNetworkError(message='Network error', response=None)
Bases: KworkError
Ошибка сети/подключения.
Возникает при: - Отсутствии соединения - Таймауте запроса - Ошибке DNS - Проблемах с SSL
Example
try: await client.catalog.get_list() except KworkNetworkError: print("Проверьте подключение к интернету")
Source code in src/kwork_api/errors.py
188 189 | |
KworkNotFoundError ¶
KworkNotFoundError(resource, response=None)
Bases: KworkApiError
Ресурс не найден (404).
Возникает при запросе несуществующего кворка, пользователя или другого ресурса.
Example
try: await client.catalog.get_details(999999) except KworkNotFoundError: print("Кворк не найден")
Source code in src/kwork_api/errors.py
113 114 | |
KworkRateLimitError ¶
KworkRateLimitError(
message="Rate limit exceeded", response=None
)
Bases: KworkApiError
Превышен лимит запросов (429).
Возникает при слишком частых запросах к API. Рекомендуется сделать паузу перед повторным запросом.
Example
import asyncio
try: await client.catalog.get_list() except KworkRateLimitError: await asyncio.sleep(5) # Пауза 5 секунд
Source code in src/kwork_api/errors.py
133 134 | |
KworkValidationError ¶
KworkValidationError(
message="Validation failed", fields=None, response=None
)
Bases: KworkApiError
Ошибка валидации (400).
Возникает при некорректных данных запроса.
Attributes:
| Name | Type | Description |
|---|---|---|
fields |
Словарь ошибок по полям {field: [errors]}. |
Example
try: await client.catalog.get_list(page=-1) except KworkValidationError as e: if e.fields: for field, errors in e.fields.items(): print(f"{field}: {errors[0]}")
Source code in src/kwork_api/errors.py
155 156 157 158 159 160 161 162 | |