代码如下 输入正确表名字 可以正常运行没问题 给出错误表名 OPEN就出错了而且Cathch不到 不是应该能抓到么 现在出现 kernel32.dll错误 如何能让catch抓住错误而不是程序死掉就是这句m_pRecordset->Open("SELECT * FROM test11" 
如果是已经存在的test11 就好用 写成不存在的test 程序就死掉          _ConnectionPtr m_pConnection;
// 初始化COM,创建ADO连接等操作
AfxOleInit();
m_pConnection.CreateInstance(__uuidof(Connection));

//连接数据库
try                 
{

m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库Demo.mdb是否在当前路径下!");
return ;
}   
//打开数据表
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance(__uuidof(Recordset));
try
{
m_pRecordset->Open("SELECT * FROM test11",                // 查询test表中所有字段
m_pConnection.GetInterfacePtr(),  // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}