mirror of
https://github.com/fastapi/fastapi.git
synced 2026-01-24 14:02:49 -05:00
* ✨ Implement separated ValidationError handlers and custom exceptions * ✅ Add tutorial source examples and tests * 📝 Add docs for custom exception handlers * 📝 Update docs section titles
27 lines
658 B
Python
27 lines
658 B
Python
from fastapi import FastAPI
|
|
from starlette.requests import Request
|
|
from starlette.responses import JSONResponse
|
|
|
|
|
|
class UnicornException(Exception):
|
|
def __init__(self, name: str):
|
|
self.name = name
|
|
|
|
|
|
app = FastAPI()
|
|
|
|
|
|
@app.exception_handler(UnicornException)
|
|
async def unicorn_exception_handler(request: Request, exc: UnicornException):
|
|
return JSONResponse(
|
|
status_code=418,
|
|
content={"message": f"Oops! {exc.name} did something. There goes a rainbow..."},
|
|
)
|
|
|
|
|
|
@app.get("/unicorns/{name}")
|
|
async def read_unicorn(name: str):
|
|
if name == "yolo":
|
|
raise UnicornException(name=name)
|
|
return {"unicorn_name": name}
|