> On 18 Apr 2015, at 02:20, [email protected] wrote:
> 
> Hi everyone, I have a considerably amount of code that uses SQLAlchemy and I 
> want to implement a decorator that captures the SQLAlchemy exceptions, then 
> make session.rollback() and recall the decorated function, so I don't have to 
> write the try except statement whenever I use SQLAlchemy.
> For implementing such a decorator I need the exceptions I can certainly 
> capture to make session.rollback() and the app keep working fine because 
> there are exceptions that will cause an endless loop and should never be 
> captured (e.g., generating the same primary key due to a bug and always 
> raising IntegrityError)
> So, can anyone tell me what are those exceptions that are safe to make 
> session.rollback()?

I guess that your intent is to retry transactions that failed because of a 
serialisation error in the SERIALIZABLE isolation level.

My understanding is that, to SQLAlchemy, this is a database-specific issue. You 
can expect the SQLAlchemy exception to be an OperationalError, but you would 
need to add additional checks to specifically identify the kind error returned 
by your database driver. An argument could be made that serialisation errors 
should be wrapped in a more specific exception class by SQLAlchemy, but I do 
not believe that is the case at the moment.

I am no expert, so please someone correct me if I am wrong.

-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to