这是我的代码段:
try
{
if ( query.exec(query_str) == false ) {
err_desc = query.lastError().text().toStdString();
return RET_FAIL;
}
}
catch(QSqlError &e)
{
handleError(e);
}
我在handleError中设置了一个断点,但是当出现错误时,似乎从未到达此断点,err_desc
具有以下值:
MySQL server has gone away QMYSQL: unable to execute query
为什么它没有发现错误?
答案 0 :(得分:2)
我怀疑当服务器消失时你没有得到异常。 还有其他posts on handling this
答案 1 :(得分:2)
因为没有错误要抓住。
如果查询失败,则返回false并设置QSqlError
,可通过QSqlQuery::lastError()
访问,但不会引发异常。
if ( query.exec(query_str) == false ) {
err_desc = query.lastError().text().toStdString();
handleError(query.lastError());
return RET_FAIL;
}