Files
Neo-ZQYY/apps/backend/app/ai/exceptions.py
Neo 6f8f12314f feat: 累积功能变更 — 聊天集成、租户管理、小程序更新、ETL 增强、迁移脚本
包含多个会话的累积代码变更:
- backend: AI 聊天服务、触发器调度、认证增强、WebSocket、调度器最小间隔
- admin-web: ETL 状态页、任务管理、调度配置、登录优化
- miniprogram: 看板页面、聊天集成、UI 组件、导航更新
- etl: DWS 新任务(finance_area_daily/board_cache)、连接器增强
- tenant-admin: 项目初始化
- db: 19 个迁移脚本(etl_feiqiu 11 + zqyy_app 8)
- packages/shared: 枚举和工具函数更新
- tools: 数据库工具、报表生成、健康检查
- docs: PRD/架构/部署/合约文档更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 00:03:48 +08:00

54 lines
1.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""AI 模块异常层级。
所有 DashScope 相关异常继承自 DashScopeError 基类,
便于上层统一捕获和分类处理。
"""
from __future__ import annotations
class DashScopeError(Exception):
"""DashScope 异常基类。"""
class DashScopeApiError(DashScopeError):
"""Application API 调用失败(重试耗尽后)。"""
def __init__(self, message: str, status_code: int | None = None):
super().__init__(message)
self.status_code = status_code
class DashScopeAuthError(DashScopeApiError):
"""API Key 无效HTTP 401"""
def __init__(self, message: str = "API Key 无效或已过期"):
super().__init__(message, status_code=401)
class DashScopeTimeoutError(DashScopeApiError):
"""调用超时。"""
def __init__(self, message: str = "DashScope API 调用超时"):
super().__init__(message, status_code=None)
class DashScopeJsonParseError(DashScopeError):
"""响应 JSON 解析失败(重试耗尽后)。"""
def __init__(self, message: str, raw_content: str = ""):
super().__init__(message)
self.raw_content = raw_content
class CircuitOpenError(DashScopeError):
"""熔断器处于 OPEN 状态,拒绝请求。"""
class RateLimitExceededError(DashScopeError):
"""限流阈值超限。"""
class BudgetExceededError(DashScopeError):
"""Token 预算超限。"""