nodebookls/exceptions.py
2025-10-29 13:56:24 +08:00

78 lines
2.0 KiB
Python

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"
}