From 4fbfbf92a672b49bbed3cdd07b7599147bc06dc1 Mon Sep 17 00:00:00 2001 From: Dohyun Lim Date: Fri, 13 Mar 2026 11:22:55 +0900 Subject: [PATCH] add exception error cases --- app/database/session.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/app/database/session.py b/app/database/session.py index 64ee417..5134450 100644 --- a/app/database/session.py +++ b/app/database/session.py @@ -132,13 +132,22 @@ async def get_session() -> AsyncGenerator[AsyncSession, None]: try: yield session except Exception as e: - import traceback + from fastapi import HTTPException await session.rollback() - logger.error(traceback.format_exc()) - logger.error( - f"[get_session] ROLLBACK - error: {type(e).__name__}: {e}, " - f"duration: {(time.perf_counter() - start_time)*1000:.1f}ms" - ) + duration = (time.perf_counter() - start_time) * 1000 + # 클라이언트 에러(4xx)는 WARNING, 서버 에러(5xx)는 ERROR로 구분 + if isinstance(e, HTTPException) and e.status_code < 500: + logger.warning( + f"[get_session] ROLLBACK ({e.status_code}) - " + f"error: {type(e).__name__}: {e}, duration: {duration:.1f}ms" + ) + else: + import traceback + logger.error(traceback.format_exc()) + logger.error( + f"[get_session] ROLLBACK - error: {type(e).__name__}: {e}, " + f"duration: {duration:.1f}ms" + ) raise e finally: total_time = time.perf_counter() - start_time