SQLAlchemy 2.0 обработка исключений
Всем привет. В версии алхимии 1.4 я делал запись в БД примерно таким образом
from sqlalchemy.orm import sessionmaker, exc
session = Session()
session.add(add_sale)
try:
session.commit()
except exc.sa_exc.SQLAlchemyError as e:
error = str(e.__dict__['orig'])
session.rollback()
logger.error('Ошибка при сохранении в БД: %s' % error)
finally:
session.close()
Сейчас переписываю проект на алхимию 2.0. В ней рекомендуется использовать менеджер контекста, и использовать with
with Session() as session:
session.add(user)
session.commit()
Так же можно использовать Session.begin(), с двумя контекстами
with Session(engine) as session, session.begin():
session.add(some_object)
session.add(some_other_object)
Подскажите, пожалуйста, стоит ли озадачиваться отлавливанием exception или успокоиться и использовать менеджер контекста с with?
Источник: Stack Overflow на русском