MySql - 未捕获QSqlError

时间:2013-06-28 08:27:33

标签: c++ mysql qt

这是我的代码段:

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

为什么它没有发现错误?

2 个答案:

答案 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;
}