Używam Python/Bottle/SqlAlchemy/MySQL dla usługi sieci Web.nie można przechwycić błędu integralności MySQL w Pythonie
Próbuję złapać błąd IntegrityError wywołany przez wywołanie procedury przechowywanej, ale nie mogę tego zrobić.
Stosując tę
cursor = connection.cursor()
cursor.callproc('my_stored_proc', [arguments])
daje taki sam wynik jak
try:
cursor = connection.cursor()
cursor.callproc('my_stored_proc', [arguments])
except IntegrityError as e:
print("Error: {}".format(e))
return {"message": e.message}
uzyskać IntegrityError wyjątek w obu przypadkach. Dlaczego wyjątek nie został złapany w tym drugim przypadku?
Jak/kiedy ty zobowiązującego transakcję? "IntegrityError" prawdopodobnie zostanie podniesiony, gdy transakcja zostanie zatwierdzona, a nie podczas wywoływania procedury składowanej. –