diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2026-04-02 15:46:18 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2026-04-02 15:46:18 +0900 |
| commit | 776376dda8005635c4c3365905ca7df857789fec (patch) | |
| tree | 09a8f134929007b58981e6c5e756c3f3b4d3cbda /services/api/src/trading_api/routers/orders.py | |
| parent | 8da5fb843856bb6585c6753f44d422beaa4a8204 (diff) | |
refactor: specialize exception handling across all services
Diffstat (limited to 'services/api/src/trading_api/routers/orders.py')
| -rw-r--r-- | services/api/src/trading_api/routers/orders.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/services/api/src/trading_api/routers/orders.py b/services/api/src/trading_api/routers/orders.py index c69dc10..a29ae2f 100644 --- a/services/api/src/trading_api/routers/orders.py +++ b/services/api/src/trading_api/routers/orders.py @@ -5,6 +5,7 @@ import logging from fastapi import APIRouter, HTTPException, Request from shared.sa_models import OrderRow, SignalRow from sqlalchemy import select +from sqlalchemy.exc import OperationalError logger = logging.getLogger(__name__) @@ -35,8 +36,11 @@ async def get_orders(request: Request, limit: int = 50): } for r in rows ] + except OperationalError as exc: + logger.error("Database error fetching orders: %s", exc) + raise HTTPException(status_code=503, detail="Database unavailable") except Exception as exc: - logger.error("Failed to get orders: %s", exc) + logger.error("Failed to get orders: %s", exc, exc_info=True) raise HTTPException(status_code=500, detail="Failed to retrieve orders") @@ -62,6 +66,9 @@ async def get_signals(request: Request, limit: int = 50): } for r in rows ] + except OperationalError as exc: + logger.error("Database error fetching signals: %s", exc) + raise HTTPException(status_code=503, detail="Database unavailable") except Exception as exc: - logger.error("Failed to get signals: %s", exc) + logger.error("Failed to get signals: %s", exc, exc_info=True) raise HTTPException(status_code=500, detail="Failed to retrieve signals") |
