class MySuperContextManager: def __init__(self): self.db = DBSession() def __enter__(self): return self.db def __exit__(self, exc_type, exc_value, traceback): self.db.close()
async def get_db(): db = DBSession() try: ''' 不要尝试在yield后面抛出HTTPException,不会起作用 yield之后的退出,是在异常处理器之后被执行的 ''' yield db finally: db.close()