FastAPI 推荐用 HTTPException 直接抛出 API 错误。
from fastapi import FastAPI, HTTPException
app = FastAPI()
fake_db = {1: {"id": 1, "owner": "Ada"}}
@app.get("/permits/{permit_id}")
async def get_permit(permit_id: int):
permit = fake_db.get(permit_id)
if permit is None:
raise HTTPException(status_code=404, detail="通行证不存在")
return permit关键点:
- 不是
return HTTPException(...) - 而是
raise HTTPException(...)
这意味着资料一旦不合法,请求立刻终止,不会继续执行业务逻辑。