# ============================================================================= # 企微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)