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