Coverage for docs_src/handling_errors/tutorial004.py: 100%

16 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-05-05 00:03 +0000

1from fastapi import FastAPI, HTTPException 1abcdef

2from fastapi.exceptions import RequestValidationError 1abcdef

3from fastapi.responses import PlainTextResponse 1abcdef

4from starlette.exceptions import HTTPException as StarletteHTTPException 1abcdef

5 

6app = FastAPI() 1abcdef

7 

8 

9@app.exception_handler(StarletteHTTPException) 1abcdef

10async def http_exception_handler(request, exc): 1abcdef

11 return PlainTextResponse(str(exc.detail), status_code=exc.status_code) 1ghijkl

12 

13 

14@app.exception_handler(RequestValidationError) 1abcdef

15async def validation_exception_handler(request, exc): 1abcdef

16 return PlainTextResponse(str(exc), status_code=400) 1stuvwx

17 

18 

19@app.get("/items/{item_id}") 1abcdef

20async def read_item(item_id: int): 1abcdef

21 if item_id == 3: 1mgnhoipjqkrl

22 raise HTTPException(status_code=418, detail="Nope! I don't like 3.") 1ghijkl

23 return {"item_id": item_id} 1mnopqr