0
0
FastAPIframework~5 mins

Why error handling ensures reliability in FastAPI

Choose your learning style9 modes available
Introduction

Error handling helps your FastAPI app keep working even when something goes wrong. It stops crashes and gives clear messages to users.

When a user sends wrong data to your API
When a database connection fails
When an external service your app uses is down
When you want to log errors for fixing later
When you want to send friendly error messages instead of server errors
Syntax
FastAPI
from fastapi import FastAPI, HTTPException

app = FastAPI()

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    if item_id < 1:
        raise HTTPException(status_code=400, detail="Invalid item ID")
    return {"item_id": item_id}

Use raise HTTPException(status_code, detail) to send error responses.

FastAPI catches these exceptions and sends proper HTTP error codes.

Examples
This example returns an error if the user ID is not positive.
FastAPI
from fastapi import FastAPI, HTTPException

app = FastAPI()

@app.get("/users/{user_id}")
async def get_user(user_id: int):
    if user_id <= 0:
        raise HTTPException(status_code=400, detail="User ID must be positive")
    return {"user_id": user_id}
This example prevents division by zero and returns a clear error.
FastAPI
from fastapi import FastAPI, HTTPException

app = FastAPI()

@app.get("/divide")
async def divide(a: float, b: float):
    if b == 0:
        raise HTTPException(status_code=400, detail="Cannot divide by zero")
    return {"result": a / b}
Sample Program

This FastAPI app returns an item by its ID. If the item does not exist, it sends a 404 error with a clear message.

FastAPI
from fastapi import FastAPI, HTTPException

app = FastAPI()

items = {1: "apple", 2: "banana"}

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    if item_id not in items:
        raise HTTPException(status_code=404, detail="Item not found")
    return {"item": items[item_id]}
OutputSuccess
Important Notes

Always handle possible errors to avoid app crashes.

Use HTTP status codes that match the error type (e.g., 400 for bad request, 404 for not found).

Clear error messages help users and developers understand what went wrong.

Summary

Error handling keeps your FastAPI app stable and user-friendly.

Use HTTPException to send proper error responses.

Good error handling improves reliability and trust in your app.