雨米 2020-01-20 15:46 采纳率: 0%
浏览 306

flask中sqlalchemy中的异常都有哪些?继承的父类异常是什么

需要捕获到异常然后进行处理,不能使用EXCEOTION这个基类,所以需要知道其他的异常类型

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-26 11:19
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Flask-SQLAlchemy库中,异常通常由orm.exc.SQLAlchemyError或orm.exc.MultipleResultsFound引起。这些异常是ORM数据库操作(例如查询)时可能发生的错误。

    orm.exc.SQLAlchemyError是一个子类,它覆盖了SQLAlchemyException和RuntimeError,并且提供了一个__str__方法来显示具体的错误信息。例如:

    from sqlalchemy.exc import SQLAlchemyError, MultipleResultsFound
    
    class MyModel(object):
        def __init__(self, session):
            self.session = session
    
        def get_all(self):
            try:
                return self.session.query(MyModel).all()
            except SQLAlchemyError as e:
                print(e)
    

    在这个例子中,如果尝试执行get_all()方法并抛出一个SQLAlchemyError,那么将打印出具体的信息。

    orm.exc.MultipleResultsFound是另一个常见的异常,当从数据库获取的结果集包含多个结果时引发。例如:

    try:
        result = self.session.query(MyModel).one()
    except SQLAlchemyError as e:
        if isinstance(e, MultipleResultsFound):
            # 处理多条记录的情况
            pass
    

    在这种情况下,如果遇到MultipleResultsFound异常,你需要根据具体情况决定如何处理。

    评论

报告相同问题?