字符串析构函数如何抛出异常?
它在变量s
的try块结束时抛出。
Environment *env = Environment::createEnvironment(Environment::DEFAULT);
Connection *con;
con = env->createConnection(Config::login, Config::password, Config::connection_string);
string sqlStmt = "SELECT user FROM dual";
auto stmt = con->createStatement(sqlStmt);
ResultSet *rset = stmt->executeQuery();
try {
rset->next();
string s = rset->getString(1);
cout << "user: " << s << endl;
} // exception thrown here
读取访问冲突_Pnext为0xFFFFFFFFFFFFFFF
答案 0 :(得分:0)
问题是CRT库的版本不同。您的应用程序和Oracle的CRT库版本必须匹配。
答案 1 :(得分:0)
似乎不是std :: string异常。
那个裸露的rset-> next()是不明智的。应该先检查rset,更重要的是,如果(rset-> next()){..your code ..}是保护您免受自身侵害的常规方式。
只需检查:
if (rset->next() == Status::DATA_AVAILABLE) {
auto s = rset->getString(1);
}