尝试在Python代码中处理SQLAlchemy引发的异常,我写了以下内容:
import sqlalchemy.exc as sqlalchemy_exc
try:
...
db.session.commit()
except sqlalchemy_exc.SQLAlchemyError:
raise
这不是一个好主意,因为处理的异常太宽了。如何获得特定的异常类型?
更新
import sqlalchemy.exc as sqlalchemy_exc
...
try:
...
except:
import sys
print(sys.exc_info())
和
import sqlalchemy.exc as sqlalchemy_exc
...
try:
...
except:
import logging
logging.exception('')
答案 0 :(得分:1)
您可以先尝试打印它,看看它是哪个例外:How to log python exception?
然后你可以修改你的代码来捕捉你不同处理的更具体的代码,最终将打印内容保留在最后的全部案例中 - 允许你识别你可能想要添加的其他特定异常到你的代码。
try:
...
except sqlalchemy_exc.ArgumentError: # specific exception
pass # do something else here if you want
except sqlalchemy_exc.SQLAlchemyError: # catch-all
# keep the printing stuff if you want
raise