2
我在類方法這個簡單的代碼處理(使用std ::地圖<的std :: string,的std :: string>作爲用於各種數據容器):Q_ASSERT場所C++異常
try {
commonHeader->version = options.at("M3UA version").at(0);
} catch (const std::out_of_range& err) {
commonHeader->version = 1;
}
和I」 m使用QtTest來運行一些測試,一個特定插槽具有
Q_ASSERT(isupPage->ui->cicLineEdit == isupResultPage->ui->cicLineEdit);
最後。
當此測試處於活動狀態時,所有異常都變爲不可捕捉,導致線程的代碼和std :: terminate()被破壞。但是,將Q_ASSERT更改爲QVERIFY似乎可以解決問題。
這是Q_ASSERT的預期行爲,還是應該更仔細地查看我的代碼?