class DocumentProcessingError(Exception): """文档处理相关错误""" pass class VectorStoreError(Exception): """向量存储相关错误""" pass class RetrievalError(Exception): """检索相关错误""" pass class GenerationError(Exception): """文本生成相关错误""" pass class ConfigurationError(Exception): """配置相关错误""" pass class ExportError(Exception): """导出相关错误""" pass class SecurityError(Exception): """安全相关错误""" pass def handle_exception(exc: Exception) -> dict: """统一异常处理""" if isinstance(exc, DocumentProcessingError): return { "error": "文档处理失败", "message": str(exc), "code": "DOC_PROCESSING_ERROR" } elif isinstance(exc, VectorStoreError): return { "error": "向量存储错误", "message": str(exc), "code": "VECTOR_STORE_ERROR" } elif isinstance(exc, RetrievalError): return { "error": "检索失败", "message": str(exc), "code": "RETRIEVAL_ERROR" } elif isinstance(exc, GenerationError): return { "error": "文本生成失败", "message": str(exc), "code": "GENERATION_ERROR" } elif isinstance(exc, ConfigurationError): return { "error": "配置错误", "message": str(exc), "code": "CONFIGURATION_ERROR" } elif isinstance(exc, ExportError): return { "error": "导出失败", "message": str(exc), "code": "EXPORT_ERROR" } elif isinstance(exc, SecurityError): return { "error": "安全错误", "message": str(exc), "code": "SECURITY_ERROR" } else: return { "error": "未知错误", "message": str(exc), "code": "UNKNOWN_ERROR" }