崩溃填充数据适配器

Syn*_*ror 5 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();
}
Run Code Online (Sandbox Code Playgroud)

bab*_*bak 1

看看这个线程。这可能会有所帮助。

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

#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(); 
}
Run Code Online (Sandbox Code Playgroud)