2013-06-28 51 views
0

這裏是我的代碼片段:MySQL的 - QSqlError沒有被捕獲

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

因爲沒有錯誤要趕上。

如果查詢失敗,則返回false並設置QSqlError,可通過QSqlQuery::lastError()訪問,但不會引發異常。

if (query.exec(query_str) == false) { 
    err_desc = query.lastError().text().toStdString(); 
    handleError(query.lastError()); 
    return RET_FAIL; 
} 
相關問題