exception_handlers.py — fastapi Source File
Architecture documentation for exception_handlers.py, a python file in the fastapi codebase. 12 imports, 2 dependents.
Entity Profile
Dependency Diagram
graph LR 2d259205_f589_7dee_455a_60e1c67ed35e["exception_handlers.py"] ea747667_035c_8539_a8f7_f347fb7e7c39["encoders.py"] 2d259205_f589_7dee_455a_60e1c67ed35e --> ea747667_035c_8539_a8f7_f347fb7e7c39 1ac1bc37_1a47_e7e2_9156_ab0473094700["jsonable_encoder"] 2d259205_f589_7dee_455a_60e1c67ed35e --> 1ac1bc37_1a47_e7e2_9156_ab0473094700 01c652c5_d85c_f45e_848e_412c94ea4172["exceptions.py"] 2d259205_f589_7dee_455a_60e1c67ed35e --> 01c652c5_d85c_f45e_848e_412c94ea4172 58bb043a_10d8_c308_5564_225558a63815["RequestValidationError"] 2d259205_f589_7dee_455a_60e1c67ed35e --> 58bb043a_10d8_c308_5564_225558a63815 b73e338b_e4cd_2e94_eb5a_5e6ac7b197b0["WebSocketRequestValidationError"] 2d259205_f589_7dee_455a_60e1c67ed35e --> b73e338b_e4cd_2e94_eb5a_5e6ac7b197b0 1c2c0e68_6ed1_7632_8c35_00818f97b599["utils.py"] 2d259205_f589_7dee_455a_60e1c67ed35e --> 1c2c0e68_6ed1_7632_8c35_00818f97b599 dba5a7c0_1fab_8f88_2c80_2b79c3b3dc47["is_body_allowed_for_status_code"] 2d259205_f589_7dee_455a_60e1c67ed35e --> dba5a7c0_1fab_8f88_2c80_2b79c3b3dc47 75b7515c_c403_b332_0929_cfe34deb0c70["websockets.py"] 2d259205_f589_7dee_455a_60e1c67ed35e --> 75b7515c_c403_b332_0929_cfe34deb0c70 72a586ac_ceef_ac9f_17ec_0ed0d645b635["starlette.exceptions"] 2d259205_f589_7dee_455a_60e1c67ed35e --> 72a586ac_ceef_ac9f_17ec_0ed0d645b635 7ba41d57_5222_3320_290a_ff23f8a854b4["starlette.requests"] 2d259205_f589_7dee_455a_60e1c67ed35e --> 7ba41d57_5222_3320_290a_ff23f8a854b4 e5a24867_6a9b_cc44_1a92_bc955a4ceb50["starlette.responses"] 2d259205_f589_7dee_455a_60e1c67ed35e --> e5a24867_6a9b_cc44_1a92_bc955a4ceb50 26ce4316_d64e_8f75_fd3c_7f3b4f109cff["starlette.status"] 2d259205_f589_7dee_455a_60e1c67ed35e --> 26ce4316_d64e_8f75_fd3c_7f3b4f109cff 46d0b5a1_0a29_e7e1_5201_61b2c63c0e75["tutorial006_py39.py"] 46d0b5a1_0a29_e7e1_5201_61b2c63c0e75 --> 2d259205_f589_7dee_455a_60e1c67ed35e 6c1867f2_34c4_b2ed_5639_41766e6fd7ce["applications.py"] 6c1867f2_34c4_b2ed_5639_41766e6fd7ce --> 2d259205_f589_7dee_455a_60e1c67ed35e style 2d259205_f589_7dee_455a_60e1c67ed35e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
from fastapi.encoders import jsonable_encoder
from fastapi.exceptions import RequestValidationError, WebSocketRequestValidationError
from fastapi.utils import is_body_allowed_for_status_code
from fastapi.websockets import WebSocket
from starlette.exceptions import HTTPException
from starlette.requests import Request
from starlette.responses import JSONResponse, Response
from starlette.status import WS_1008_POLICY_VIOLATION
async def http_exception_handler(request: Request, exc: HTTPException) -> Response:
headers = getattr(exc, "headers", None)
if not is_body_allowed_for_status_code(exc.status_code):
return Response(status_code=exc.status_code, headers=headers)
return JSONResponse(
{"detail": exc.detail}, status_code=exc.status_code, headers=headers
)
async def request_validation_exception_handler(
request: Request, exc: RequestValidationError
) -> JSONResponse:
return JSONResponse(
status_code=422,
content={"detail": jsonable_encoder(exc.errors())},
)
async def websocket_request_validation_exception_handler(
websocket: WebSocket, exc: WebSocketRequestValidationError
) -> None:
await websocket.close(
code=WS_1008_POLICY_VIOLATION, reason=jsonable_encoder(exc.errors())
)
Domain
Subdomains
Functions
Dependencies
- RequestValidationError
- WebSocketRequestValidationError
- encoders.py
- exceptions.py
- is_body_allowed_for_status_code
- jsonable_encoder
- starlette.exceptions
- starlette.requests
- starlette.responses
- starlette.status
- utils.py
- websockets.py
Source
Frequently Asked Questions
What does exception_handlers.py do?
exception_handlers.py is a source file in the fastapi codebase, written in python. It belongs to the FastAPI domain, Routing subdomain.
What functions are defined in exception_handlers.py?
exception_handlers.py defines 3 function(s): http_exception_handler, request_validation_exception_handler, websocket_request_validation_exception_handler.
What does exception_handlers.py depend on?
exception_handlers.py imports 12 module(s): RequestValidationError, WebSocketRequestValidationError, encoders.py, exceptions.py, is_body_allowed_for_status_code, jsonable_encoder, starlette.exceptions, starlette.requests, and 4 more.
What files import exception_handlers.py?
exception_handlers.py is imported by 2 file(s): applications.py, tutorial006_py39.py.
Where is exception_handlers.py in the architecture?
exception_handlers.py is located at fastapi/exception_handlers.py (domain: FastAPI, subdomain: Routing, directory: fastapi).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free