0

这是我的代码片段:

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

为什么它无法捕获错误?

4

2 回答 2

2

我怀疑当服务器消失时你没有得到异常。还有其他关于处理这个的帖子

于 2013-06-28T09:01:02.040 回答
2

因为没有要捕获的错误。

如果查询失败,则返回 false 并设置 a QSqlError,可通过 访问QSqlQuery::lastError(),但不会引发异常。

if ( query.exec(query_str) == false ) {
    err_desc = query.lastError().text().toStdString();
    handleError(query.lastError());
    return RET_FAIL;
}
于 2013-06-28T09:08:20.390 回答