我在Windows 8中使用OpenCV 2.4.6和VS2012 c ++ / cli,并尝试从文件中简单地读取矩阵。在运行时,我在尝试打开文件时崩溃,并且收到错误消息“System.Runtime.InteropServices.SEHException” - “外部组件引发了异常”。
我有两个问题:1)导致此错误的原因; 2)为什么try / catch没有处理这个错误?
我的代码如下:
private: System::Void buttonLoadStyle_Click(System::Object^ sender, System::EventArgs^ e) {
FileStorage fs;
try
{
fs.open("SVStyle0.xml",FileStorage::READ);
}
catch(cv::Exception& e)
{
const char * err_msg = e.what();
}
catch(...)
{
System::Windows::Forms::MessageBox::Show("Load Style Exception","Rune Time Error!",MessageBoxButtons::OK,MessageBoxIcon::Error);
}
if(fs.isOpened())
{
// do something
}
};
当fs.open行尝试打开文件时,我收到异常。此外,我的try / catch块没有捕获异常。