崩溃填充数据适配器

时间:2013-07-03 05:17:43

标签: c++ ado.net command-line-interface

我很困惑,弄清楚为什么Outlook中的gmail帐户格式错误的查询会导致我的应用程序崩溃而不是简单地引发异常。似乎有一个未被捕获的win32异常基于从非托管C ++调用代码。当我更改outlook配置文件位置时,错误消失了。我仍然不明白为什么我的.NET代码无法捕获异常,因为我嵌套了>试图解决问题的20个例外。

我也无法直接调试.NET中的代码,因为我无法设置STAAttribute,而我的编译器Visual Studio 2010 Professional不允许我调试C ++ / CLI代码。 http://winterdom.com/2007/02/jetmapiandsta

查询错误很简单,日期中缺少# SELECT * FROM inbox WHERE Body Like '%BWIC%' And rECEIVED>=#07/26/2012

我尝试在catch语句中添加许多异常,但无法阻止崩溃。

System::Data::DataSet ^db_DataSet=gcnew System::Data::DataSet;  
int const Fill_Result=db_Adapter.Fill(db_DataSet);
}
catch (System::Exception ^ex) {
    ex;
}
catch (...) {
   ;
}
finally {
   if (db_Conn)
       db_Conn.close();
}

1 个答案:

答案 0 :(得分:1)

看看This主题。这可能会有所帮助。

根据它,您可以在本机环境中捕获异常并向管理世界抛出异常。

#include <exception>


 try
{
    try
    {
        Application::Run(gcnew frmMain()); 
    }
    catch(const exception& ex)
    {
        throw gcnew System::Exception(gcnew System::String(ex.what()));
    }
} 
catch (Exception^ ex) 
{ 
    LogAndExit(ex); 
} 
catch (...) 
{ 
    LogAndExit(); 
}