Why following "try catch" cannot catch this OlEDB error (Access database file m_szDataFile is not exist, it will fail at "m_datSpeed.MoveNext();")? The whole application will halt.try {
m_datSpeed.Open(m_szDataFile);
m_datSpeed.MoveNext();
m_datSpeed.m_session.Close();
m_datSpeed.Close();
} catch (...) {
AfxMessageBox("Connect to OLEDB error");
m_datSpeed.m_session.Close();
m_datSpeed.Close();
}Here CSpeedData is class CSpeedData : public CCommand<CAccessor<CSpeedDataAccessor>>
m_datSpeed.Open(m_szDataFile);
m_datSpeed.MoveNext();
m_datSpeed.m_session.Close();
m_datSpeed.Close();
} catch (...) {
AfxMessageBox("Connect to OLEDB error");
m_datSpeed.m_session.Close();
m_datSpeed.Close();
}Here CSpeedData is class CSpeedData : public CCommand<CAccessor<CSpeedDataAccessor>>
解决方案 »
- 关于多线程在网络编程中的使用疑问!
- 对话框大小随分辨率不同变化后,该怎么去改对话框上的控件上的字体大小?
- c语言的问题(1) CFileDialog dlg是什么意思
- 如何在excel的指定的某个单元格中插入一个指定行和列的表格?
- 如何实现监控共享文件会话的功能
- Get(szName); 为什么编译不通过.
- 关于 画板程序刷新的问题(sdk)(sdk)(sdk)
- ADO连接的怪问题
- 西安求职(VC程序员)
- MDI中如何调用不同的文档模板(DocTemplate)?
- 关于SHBrowseForFolder--up也好
- 初级问题:请问,什么叫做“托管”,我在msdn上看到的这个词,哪里能找到这方面的资料?
{
_bstr_t bstrSource (e.Source());
_bstr_t bstrDescription (e.Description());
CString strError;
strError.Format("无法连接Sybase数据库。\r\n错误代码是:%08lx\r\n错误的原因是:%s\r\n错误源是:%s\r\n错误的描述是:%s\r\n", e.Error (), e.ErrorMessage (), (LPCTSTR) bstrSource, (LPCTSTR) bstrDescription);
MessageBox (strError, bstrDescription,MB_OK);
return false;
}
catch(CException &e)
{
e.ReportError();
e.Delete();
return false;
}
catch (...)
{
TRACE ( "*** 无法解决的错误 ***" );
return false;
}