62 lines
1.6 KiB
Python
62 lines
1.6 KiB
Python
|
|
# 联软LV7000异常体系
|
|||
|
|
"""
|
|||
|
|
定义联软API集成的异常类层级。
|
|||
|
|
|
|||
|
|
层级:
|
|||
|
|
LianruanError — 基类(所有联软异常)
|
|||
|
|
├── LianruanConfigError — 配置缺失(未填写账号/密码/BaseURL)
|
|||
|
|
├── LianruanAuthError — 认证失败(IP不在白名单/账号密码错误/Token过期)
|
|||
|
|
├── LianruanConnectionError — 网络连接失败(超时/拒绝连接)
|
|||
|
|
└── LianruanApiError — API业务错误(参数错误/数据超限/其他)
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
|
|||
|
|
class LianruanError(Exception):
|
|||
|
|
"""联软异常基类"""
|
|||
|
|
|
|||
|
|
def __init__(self, message: str, detail: str = ""):
|
|||
|
|
self.message = message
|
|||
|
|
self.detail = detail
|
|||
|
|
super().__init__(message)
|
|||
|
|
|
|||
|
|
|
|||
|
|
class LianruanConfigError(LianruanError):
|
|||
|
|
"""配置缺失异常。
|
|||
|
|
|
|||
|
|
场景:未配置联软 BaseURL / ApiAccount / ApiPassword
|
|||
|
|
"""
|
|||
|
|
pass
|
|||
|
|
|
|||
|
|
|
|||
|
|
class LianruanAuthError(LianruanError):
|
|||
|
|
"""认证失败异常。
|
|||
|
|
|
|||
|
|
场景:
|
|||
|
|
- IP不在白名单(status=INVALID)
|
|||
|
|
- 账号密码错误
|
|||
|
|
- Token过期(需重新获取)
|
|||
|
|
"""
|
|||
|
|
pass
|
|||
|
|
|
|||
|
|
|
|||
|
|
class LianruanConnectionError(LianruanError):
|
|||
|
|
"""网络连接失败异常。
|
|||
|
|
|
|||
|
|
场景:超时/拒绝连接/DNS解析失败
|
|||
|
|
"""
|
|||
|
|
pass
|
|||
|
|
|
|||
|
|
|
|||
|
|
class LianruanApiError(LianruanError):
|
|||
|
|
"""API业务错误异常。
|
|||
|
|
|
|||
|
|
场景:
|
|||
|
|
- 参数错误(status=ERROR)
|
|||
|
|
- 数据量超限(status=Exceed)
|
|||
|
|
- 其他业务异常
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
def __init__(self, message: str, status: str = "", detail: str = ""):
|
|||
|
|
self.status = status # 联软返回的status字段(ERROR/Exceed等)
|
|||
|
|
super().__init__(message, detail)
|