12345678910111213141516171819 |
- import logging
- from starlette.middleware.base import BaseHTTPMiddleware
- from app.providers.response import ErrorResponse
- # Bug: exception_handler unable to catch Exception
- # https://github.com/tiangolo/fastapi/issues/4025
- class UnhandledExceptionHandlingMiddleware(BaseHTTPMiddleware):
- """
- 处理其他未知异常
- """
- async def dispatch(self, request, call_next):
- try:
- return await call_next(request)
- except Exception as e:
- logging.exception(e)
- return ErrorResponse(500, "internal_server_error", "Internal Server Error")
|