64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
# =============================================================================
|
|
# 企微IT智能服务台 — 火绒集成自定义异常
|
|
# =============================================================================
|
|
# 说明:火绒API调用中可能抛出的各种异常类型
|
|
# 包含:认证错误、连接超时、API错误码等
|
|
# =============================================================================
|
|
|
|
|
|
class HuorongError(Exception):
|
|
"""火绒集成基础异常。
|
|
|
|
所有火绒相关异常的父类,便于统一捕获处理。
|
|
|
|
Attributes:
|
|
code: 错误码(火绒API返回的errcode,或自定义错误码)
|
|
message: 错误描述
|
|
"""
|
|
|
|
def __init__(self, code: int = -1, message: str = "火绒API调用失败"):
|
|
self.code = code
|
|
self.message = message
|
|
super().__init__(f"[HuorongError:{code}] {message}")
|
|
|
|
|
|
class HuorongAuthError(HuorongError):
|
|
"""火绒认证失败异常。
|
|
|
|
场景:AccessKey ID/Secret 无效、签名校验失败、权限不足
|
|
火绒API返回 errcode=401 或签名相关错误时抛出。
|
|
"""
|
|
|
|
def __init__(self, message: str = "火绒API认证失败,请检查AccessKey配置"):
|
|
super().__init__(code=401, message=message)
|
|
|
|
|
|
class HuorongConnectionError(HuorongError):
|
|
"""火绒连接失败异常。
|
|
|
|
场景:内网地址不通、超时、DNS解析失败
|
|
"""
|
|
|
|
def __init__(self, message: str = "无法连接火绒服务器,请检查网络和Base URL配置"):
|
|
super().__init__(code=502, message=message)
|
|
|
|
|
|
class HuorongConfigError(HuorongError):
|
|
"""火绒配置缺失异常。
|
|
|
|
场景:AccessKey ID/Secret/Base URL 未在系统配置中设置
|
|
"""
|
|
|
|
def __init__(self, message: str = "火绒集成未配置,请先在管理后台设置AccessKey和Base URL"):
|
|
super().__init__(code=400, message=message)
|
|
|
|
|
|
class HuorongApiError(HuorongError):
|
|
"""火绒API业务错误。
|
|
|
|
场景:火绒API返回非0 errcode(如参数错误、终端不存在等)
|
|
"""
|
|
|
|
def __init__(self, code: int, message: str):
|
|
super().__init__(code=code, message=message)
|