Files
BiliNote/backend/app/exceptions/exception_handlers.py
JefferyHcool 8b1bc54f2d refactor(backend): 重构后端异常处理和模型管理
- 新增自定义异常类 BizException、NoteError 和 ProviderError
- 优化了模型管理相关的逻辑,包括加载、删除和测试连接等功能
- 改进了 Douyin 下载器的错误处理
- 调整了任务重试逻辑和笔记生成的异常处理- 更新了相关组件和页面以适应新的异常处理机制
2025-06-06 21:30:23 +08:00

33 lines
1.4 KiB
Python

# middlewares/exception_handler.py
from fastapi import Request
from fastapi import FastAPI
from app.enmus.exception import NoteErrorEnum
from app.exceptions.biz_exception import BizException
from app.exceptions.note import NoteError
from app.exceptions.provider import ProviderError
from app.utils.logger import get_logger
from app.utils.response import ResponseWrapper as R
import traceback
logger = get_logger(__name__)
def register_exception_handlers(app: FastAPI):
@app.exception_handler(BizException)
async def biz_exception_handler(request: Request, exc: BizException):
logger.error(f"BizException: {exc.code} - {exc.message}")
return R.error(code=exc.code, msg=str(exc.message))
@app.exception_handler(NoteError)
async def note_exception_handler(request: Request, exc: NoteError):
logger.error(f"NoteError: {exc.code} - {exc.message}")
return R.error(code=exc.code, msg=str(exc.message))
@app.exception_handler(ProviderError)
async def provider_exception_handler(request: Request, exc: ProviderError):
logger.error(f"供应商模块错误: {exc.code} - {exc.message}")
return R.error(code=exc.code, msg=str(exc.message))
@app.exception_handler(Exception)
async def general_exception_handler(request: Request, exc: Exception):
logger.error(f"系统异常: {str(exc)}\n{traceback.format_exc()}")
return R.error(code=500000, msg="系统异常")