我正在使用OpenCV warpAffine
功能。但由于某种原因,它有时失败(大约1/10尝试)。我想看到抛出的实际异常,但出于某种原因,我无法抓住它。我的try-catch块有问题吗?:
//...
cout << "pos 1" << endl;
try
{
cout << "pos 2" << endl;
cv::warpAffine(rawImage, transformed, t, size, INTER_LINEAR, BORDER_CONSTANT);
cout << "pos 3" << endl;
}
catch (const std::exception& e1)
{
cerr << e1.what() << endl;
}
catch (const cv::Exception& e2) {
cerr << e2.what() << endl;
}
即使我只有一个catch
块,它也没有遇到它。控制台总是(在它不工作的情况下)出现以下错误:
所以我不是真正关注warpAffine
的问题,更多关于此刻的尝试问题。
答案 0 :(得分:1)
这是一个过时的话题,但我想我从自己的经历中知道答案。 cv :: Exception继承自std :: exception。您需要将cv :: Exception捕获移到std :: exception之前,像这样:
try {
...
} catch(const cv::Exception& ex) {
...
} catch(const std::exception& ex) {
...
} catch(...) { //everything else
}