Обработка ошибок
Иерархия исключений
Матрица по слоям
| Слой |
Что делаем |
Пример |
| API |
HTTPException с detail и status_code |
raise HTTPException(404) |
| Services |
Бизнес-исключения (из AppError) |
raise NotFoundError("Idea", id) |
| Integrations |
try/except с fallback |
return AIResult(success=False) |
| Agents |
AgentResult(success=False, error=...) |
Без HTTP-статусов |
| Data/DB |
Ошибки не всплывают выше |
Ловим в сервисе |
Fallback pattern (AI провайдеры)
Graceful degradation
| Сервис недоступен |
Реакция |
| PostgreSQL |
503 Service Unavailable |
| Redis |
Работаем без Celery (прямой вызов), log WARNING |
| AI провайдер |
Fallback на другой, потом Error |
| Celery |
Выполняем задачу синхронно |
Логирование ошибок
| Уровень |
Когда |
| WARNING |
Timeout, retry, fallback |
| ERROR |
Ошибка внешнего API |
| CRITICAL |
Исчерпаны все retry |