8.1.2 错误处理

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

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

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

var mysqlx = require('mysqlx');

var mySession;

try {
  // Connect to server on localhost
  mySession = mysqlx.getSession( {
    host: 'localhost', port: 33060,
    user: 'user', password: 'password' } );
}
catch (err) {
  print('The database session could not be opened: ' + err.message);
}

try {
  var myDb = mySession.getSchema('test');

  // Use the collection 'my_collection'
  var myColl = myDb.getCollection('my_collection');

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

  // Print document
  print(myDoc.first());
}
catch (err) {
  print('The following error occurred: ' + err.message);
}
finally {
  // Close the session in any case
  mySession.close();
}