Адаптер данных заполнения при сбое

Я озадачен, выясняя, почему неправильно сформированный запрос учетной записи gmail в outlook приводит к сбою моего приложения, а не просто вызывает исключение. Кажется, что существует необработанное исключение 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();
}

5

Решение

Взгляни на это нить. Это может быть полезно.

В соответствии с этим вы можете поймать исключение в нативной среде и выбросить исключение в управляемый мир.

#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();
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]