有个疑问,API发送的命令有错误的时候,为什么不温和一点处理,而是每次直接崩掉

比如我下面的C++ API代码:

int main(int argc, char *argv[]) {
   DBConnection conn;
   bool ret = conn.connect("111.222.3.44", 8503);
   if(!ret){
       cout<<"Failed to connect to the server"<<endl;
       return 0;
   }
   ConstantSP cmdVec = conn.run("add{a+b)");

run的DolphinDB脚本有点问题,在vs2017中执行后api程序就崩了,如下图:
image.png

阅读 2.4k
3 个回答

直接崩溃强迫你马上解决,而不是拖拖拉拉,而且,马上死掉比隐藏错误会有价值,如果很优雅温和的处理,炸弹就被隐藏起来了,在大型程序中debug会让你崩溃。与其让你崩溃,不如就让程序死在原地吧。

DolphinDB API的处理问题的方式是抛出异常,因此需要try catch一下exception,比如:

    try {
        ConstantSP cmdVec = conn.run("add{a+b)");

    } catch (exception &ex) {
        cout << "Failed to  run  with error: " << ex.what();
        return -1;
    }

他都说是异常了,肯定是conn.run函数throw 出来的,直接 try catch一下就行了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题