catching SQLAlchemy exceptions

前端 未结 3 589
长发绾君心
长发绾君心 2021-01-31 14:21

What is the upper level exception that I can catch SQLAlechmy exceptions with ?

>>> from sqlalchemy import exc
>>> dir(exc)
[\'ArgumentError\',         


        
3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-01-31 14:53

    Depending on your version of SQLAlchemy (e.g. 1.0.4), you may need to do a little more to get to the base-SQLAlchemyError class:

    from flask.ext.sqlalchemy import exc
    exceptions = exc.sa_exc
    
    try:
        my_admin = user_models.User('space cadet', active=True)
        db.session.add(my_admin)
        db.session.commit()
    except exceptions.SQLAlchemyError:
        sys.exit("Encountered general SQLAlchemyError.  Call an adult!")
    

    this is because sqlalchemy.orm.exc now has the stanza:

    """SQLAlchemy ORM exceptions."""
    from .. import exc as sa_exc, util
    

提交回复
热议问题