| |
|
|
| 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="系统异常") |