""" Author: Yutang LI Institution: SIAT-MIC Contact: yt.li2@siat.ac.cn """ from fastapi import HTTPException from typing import Any, Dict import logging logger = logging.getLogger(__name__) class APIError(HTTPException): """自定义API错误类""" def __init__(self, status_code: int, detail: Any = None): super().__init__(status_code=status_code, detail=detail) logger.error(f"API Error: {status_code} - {detail}") def handle_minio_error(e: Exception) -> Dict[str, str]: """处理MinIO相关错误""" logger.error(f"MinIO operation failed: {str(e)}") return { "status": "error", "data": f"MinIO operation failed: {str(e)}" } def handle_http_error(e: Exception) -> Dict[str, str]: """处理HTTP请求错误""" logger.error(f"HTTP request failed: {str(e)}") return { "status": "error", "data": f"HTTP request failed: {str(e)}" } def handle_validation_error(e: Exception) -> Dict[str, str]: """处理数据验证错误""" logger.error(f"Validation failed: {str(e)}") return { "status": "error", "data": f"Validation failed: {str(e)}" } def handle_general_error(e: Exception) -> Dict[str, str]: """处理通用错误""" logger.error(f"Unexpected error: {str(e)}") return { "status": "error", "data": f"Unexpected error: {str(e)}" }