X DevAPI 用户指南  / 第 8 章语句执行  / 8.1 交易处理  /  8.1.2 错误处理

8.1.2 错误处理

在为 MySQL Shell 编写脚本时,您通常可以简单地依赖 MySQL Shell 完成的异常处理。对于所有其他语言,要么需要适当的异常处理来捕获错误,要么如果该语言不支持异常,则需要使用传统的错误处理模式。

可以通过创建自定义 SessionContext并将其传递给 mysqlx.getSession()函数来更改默认错误处理。这使得从异常切换到基于结果的错误检查成为可能。

以下示例显示了如何执行正确的错误处理。该示例假定测试模式存在并且集合my_collection存在。

from mysqlsh import mysqlx

mySession

try:
        # Connect to server on localhost
        mySession = mysqlx.get_session( {
                'host': 'localhost', 'port': 33060,
                'user': 'user', 'password': 'password' } )

except Exception as err:
        print('The database session could not be opened: %s' % str(err))

try:
        myDb = mySession.get_schema('test')

        # Use the collection 'my_collection'
        myColl = myDb.get_collection('my_collection')

        # Find a document
        myDoc = myColl.find('name like :param').limit(1).bind('param','L%').execute()

        # Print document
        print(myDoc.first())
except Exception as err:
        print('The following error occurred: %s' % str(err))
finally:
        # Close the session in any case
        mySession.close()