Насколько я знаю писать "except Exception as e:" - плохой тон, но как иначе отловить всё, что может привести к ошибке и PendingRollbackError?
A transaction has failed and needs to be rolled back before continuing.
Но у меня она вылетает, только если после первой ошибки я не сделал откат, тогда появится PendingRollbackError. Подскажите, в чем я ошибаюсь? Если выставить отлов только PendingRollbackError, должно сработать на любые ошибки, требующие отката (даже те, которые пока не пишут PendingRollbackError)?
Но на практике, я откат делаю только со 2ого раза по первой ошибке, тк не сделал откат.
try:
db_result = Results(
text=text,
created_at=created_at,
finished_at=finished_at
)
db_session.add(db_result)
db_session.commit()
db_session.refresh(db_result)
except (
PendingRollbackError
) as e:
logging.error(e)
try:
db_session.rollback()
except Exception as err:
logging.error(err)