FastAPI 异常处理
时间: 2023-07-20 07:25:34 浏览: 63
在 FastAPI 中,可以使用自定义异常处理程序来处理应用程序中出现的异常。这可以通过使用 FastAPI 提供的 `ExceptionMiddleware` 中间件来实现。以下是一个示例:
```python
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
# 添加 CORS 中间件
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# 自定义异常处理程序
@app.exception_handler(HTTPException)
async def http_exception_handler(request, exc):
return JSONResponse(
status_code=exc.status_code,
content={"message": exc.detail},
)
@app.exception_handler(Exception)
async def exception_handler(request, exc):
return JSONResponse(
status_code=500,
content={"message": "Internal server error"},
)
@app.get("/")
async def hello():
raise HTTPException(status_code=400, detail="Bad request")
```
在上述示例中,我们定义了两个异常处理程序,一个处理 `HTTPException` 异常,另一个处理所有其他异常。当应用程序中出现 `HTTPException` 异常时,`http_exception_handler` 被调用来处理该异常。当应用程序中出现其他任何异常时,`exception_handler` 被调用来处理该异常。
在上面的示例中,我们还添加了一个 CORS 中间件,以便我们的应用程序可以与其他域进行通信。