我在程序中对操作数据库的部分全部加上了try和catch块。正常情况下程序没有问题,但是我发现如果发生异常,比如服务器端的数据库关闭了,客户端方的程序就无法执行;或者网络断掉了,通讯也会中止。但是这个时候程序没有进入catch块(代码见下),而是弹出一个系统的错误提示框,说明外部错误,即将中止程序,然后整个程序全部退出。
而我希望的是,通讯错误后,程序进入catch,然后不再执行通讯了,但是程序的其它部分仍然正常运行????
非常急,恳请相助!
catch(_com_error *e)
{
  theApp.m_pConnection->RollbackTrans();
  CString mm;
  mm.Format("打开数据库出错! %s",e->ErrorMessage());
  AfxMessageBox(mm);
 delete e;
 return;
}
catch(...)
{
  theApp.m_pConnection->RollbackTrans();
  AfxMessageBox("操作数据库时发生未知错误");
  return;
}

解决方案 »

  1.   

    请哪位告诉我针对我上面说得那些异常,应该怎么写catch才能搞定。郁闷的很啊…………
      

  2.   

    那么我可否在catch段中捕获错误类型,比如数据库执行错误,或者网络错误,或者服务器没启动等信息?
      

  3.   

    晕,没听说过耶~~~~问问csdn他们服务器多久要换一次硬盘~@_@
      

  4.   

    判断错误信息可以用
    catch(_com_error e)
    {
     AfxMessageBox(e.ErrorMessage());//这样得到的也不是很详细,能粗略的判断
    }