Improve the frontend 2
This commit is contained in:
@@ -97,16 +97,18 @@ class DatabaseManager:
|
||||
logger.debug("Database session created for request")
|
||||
yield session
|
||||
except Exception as e:
|
||||
await session.rollback()
|
||||
|
||||
# Don't wrap HTTPExceptions - let them pass through
|
||||
if hasattr(e, 'status_code') and hasattr(e, 'detail'):
|
||||
# This is likely an HTTPException - don't wrap it
|
||||
await session.rollback()
|
||||
# Check by type name to avoid import dependencies
|
||||
exception_type = type(e).__name__
|
||||
if exception_type in ('HTTPException', 'StarletteHTTPException'):
|
||||
logger.debug(f"Re-raising HTTPException: {e}", service=self.service_name)
|
||||
raise
|
||||
|
||||
|
||||
error_msg = str(e) if str(e) else f"{type(e).__name__}: {repr(e)}"
|
||||
logger.error(f"Database session error: {error_msg}", service=self.service_name)
|
||||
await session.rollback()
|
||||
|
||||
|
||||
# Handle specific ASGI stream issues more gracefully
|
||||
if "EndOfStream" in str(type(e)) or "WouldBlock" in str(type(e)):
|
||||
raise DatabaseError(f"Session error: Request stream disconnected ({type(e).__name__})")
|
||||
@@ -149,6 +151,13 @@ class DatabaseManager:
|
||||
yield session
|
||||
except Exception as e:
|
||||
await session.rollback()
|
||||
|
||||
# Don't wrap HTTPExceptions - let them pass through
|
||||
exception_type = type(e).__name__
|
||||
if exception_type in ('HTTPException', 'StarletteHTTPException'):
|
||||
logger.debug(f"Re-raising HTTPException: {e}", service=self.service_name)
|
||||
raise
|
||||
|
||||
logger.error(f"Session error: {e}", service=self.service_name)
|
||||
raise DatabaseError(f"Session error: {str(e)}")
|
||||
finally:
|
||||
|
||||
Reference in New Issue
Block a user