Предположим, у меня есть оператор модификации:
cursor = conn.cursor()
# some code
affected_rows1 = cursor.execute(update_statement1, params1)
# some code
conn.commit()
cursor.close()
Должен ли я обернуть блок кода с помощью try... except
и явно откатить транзакцию при возникновении исключения, и какие исключения MySQLdb я должен поймать для отката? Раньше я ловил любой StandardError
в этом случае, но теперь у меня есть сомнения, что блоку кода вообще потребуется явный откат.
Следующий пример немного сложнее, и я понимаю, что он требует явного отката, если первый оператор обновления выполнен успешно. Тем не менее, какие исключения я должен перехватывать в этом случае:
cursor = conn.cursor()
# some code
affected_rows1 = cursor.execute(update_statement1, params1)
# some code
affected_rows2 = cursor.execute(update_statement2, params2)
#some code
conn.commit()
cursor.close()