errors.py•1.88 kB
"""
错误处理模块
定义自定义异常类,用于处理各种错误情况。
"""
from typing import Optional, Dict, Any
class BaseError(Exception):
"""基础错误类"""
def __init__(self, message: str, error_code: str = None, details: Dict[str, Any] = None):
"""
初始化基础错误
Args:
message: 错误消息
error_code: 错误代码
details: 错误详细信息
"""
super().__init__(message)
self.message = message
self.error_code = error_code or self.__class__.__name__
self.details = details or {}
def to_dict(self) -> Dict[str, Any]:
"""转换为字典格式"""
return {
"error": True,
"error_type": self.__class__.__name__,
"error_code": self.error_code,
"message": self.message,
"details": self.details
}
class BrowserError(BaseError):
"""浏览器相关错误"""
pass
class NetworkError(BaseError):
"""网络相关错误"""
pass
class ParseError(BaseError):
"""解析相关错误"""
pass
class ValidationError(BaseError):
"""验证相关错误"""
pass
class RateLimitError(BaseError):
"""速率限制错误"""
pass
class AuthenticationError(BaseError):
"""认证错误"""
pass
class ConfigurationError(BaseError):
"""配置错误"""
pass
class TimeoutError(BaseError):
"""超时错误"""
pass
def format_error_response(error: BaseError, request_id: str = None) -> Dict[str, Any]:
"""
格式化错误响应
Args:
error: 错误对象
request_id: 请求ID
Returns:
错误响应字典
"""
response = error.to_dict()
if request_id:
response["request_id"] = request_id
return response