下面的代码:
try:
Session = sessionmaker(bind=engine)
session = Session()
newentry = MyTable(
some_data = "some data",
)
session.add(newentry)
session.commit()
except psycopg2.OperationalError as oe:
print("Not possible to connect to DB")
except psycopg2.ProgrammingError as dbex:
print("Table does not exist")
Base.metadata.create_all(engine)
except Exception as ex:
print(ex)
finally:
session.close()
如何正确捕获psycopg2.errors.UndefinedTable
?psycopg2.ProgrammingError
似乎不起作用,因为在第三次捕获时打印了异常,并且没有创建表。我也尝试了psycopg2.Error
,结果相同。
谢谢你的帮助
2条答案
按热度按时间mm9b1k5b1#
如果您通过sqlalchemy构建会话,以下代码将捕获UndefinedTable错误:
dgiusagp2#
终于找到了一种方法来做到这一点。诀窍是首先捕获初始错误,然后重新引发以捕获原始错误。