from fastapi import FastAPI, Request, status from fastapi.responses import JSONResponse class AppException(Exception): def __init__(self, code: str, message: str, status_code: int = status.HTTP_400_BAD_REQUEST): self.code = code self.message = message self.status_code = status_code super().__init__(message) def register_exception_handlers(app: FastAPI) -> None: @app.exception_handler(AppException) async def app_exception_handler(_: Request, exc: AppException) -> JSONResponse: return JSONResponse( status_code=exc.status_code, content={"code": exc.code, "message": exc.message}, )