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()