add exception error cases
parent
50796ac743
commit
4fbfbf92a6
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue