Files
Blitz-Proxy/core/scripts/webpanel/exception_handler/handler.py
2025-02-03 19:05:04 +00:00

21 lines
603 B
Python

from fastapi import FastAPI, HTTPException, Request
from fastapi.responses import JSONResponse
from pydantic import BaseModel
class JSONErrorResponse(BaseModel):
status: int
detail: str
def setup_exception_handler(app: FastAPI):
'''
Setup exception handler for FastAPI.
'''
@app.exception_handler(Exception)
async def http_exception_handler(request: Request, exc: HTTPException): # type: ignore
return JSONResponse(
status_code=exc.status_code,
content=JSONErrorResponse(status=exc.status_code, detail=exc.detail).model_dump(),
)