"""统一异常处理""" from fastapi import Request from fastapi.responses import JSONResponse from pydantic import ValidationError from core.exceptions import ProxyPoolException from core.log import logger async def proxy_pool_exception_handler(request: Request, exc: ProxyPoolException): return JSONResponse( status_code=exc.code, content={"code": exc.code, "message": exc.message, "data": None}, ) async def pydantic_validation_handler(request: Request, exc: ValidationError): logger.error(f"Validation error: {exc}") return JSONResponse( status_code=422, content={ "code": 422, "message": "参数验证失败", "data": exc.errors(), }, ) async def general_exception_handler(request: Request, exc: Exception): logger.error(f"Unhandled exception: {exc}", exc_info=True) return JSONResponse( status_code=500, content={"code": 500, "message": "服务器内部错误", "data": None}, )