以文件为例:
CFile( LPCTSTR lpszFileName, UINT nOpenFlags );
throw( CFileException );//example for CFile::CFile
char* pFileName = "test.dat";
TRY
{
   CFile f( pFileName, CFile::modeCreate | CFile::modeWrite );
}
CATCH( CFileException, e )
{
   #ifdef _DEBUG
      afxDump << "File could not be opened " << e->m_cause << "\n";
   #endif
}
END_CATCH

解决方案 »

  1.   

    楼上的朋友 你说的是MFC封装的异常把?
    我说得是window C++ exception
    比如这里_variant_t vUsername = m_pResultRecordset->GetCollect("username");
    if(vUsername.vt == VT_NULL) {
    m_pResultRecordset->MoveNext();
            continue;
    } else {
            LPCSTR temp = _bstr_t(vUsername);
            CString strName = (LPCSTR)_bstr_t(vUsername);
    }
    如果不判断
    vUsername.vt == VT_NULL而直接 
    LPCSTR temp = _bstr_t(vUsername);
    CString strName = (LPCSTR)_bstr_t(vUsername);
    就会导致错误但是try {
            _variant_t vUsername = m_pResultRecordset->GetCollect("username");
            if(vUsername.vt == VT_NULL) {
            LPCSTR temp = _bstr_t(vUsername);
                    CString strName = (LPCSTR)_bstr_t(vUsername);
            }
    } catch( ???? ) {
        e.setMessage("vUsername.vt == VT_NULL");
    }并不能捕捉阿
      

  2.   

    如果是VC2005,把“项目属性”—“C/C++”—“代码生成”—“启用C++异常”设置为“是”。
      

  3.   

    VC 6++ 企业版
    操作系统 winXP -sp2
    怎么做啊?
      

  4.   

    VC6不用设置,这样就可以:
    try
    {
    // 代码
    }
    catch(...)
    {
    // 代码
    }
      

  5.   

    有些异常是catch不到的。我以前就遇到过不管用catch(...) 
      

  6.   

    高手们,我的意思是catch( ???? )
    这个???代表什么?
    CObject o?
      

  7.   

    catch()中是定义一个异常,如果用...表示不指定异常类型。
      

  8.   

    楼上的高手 那么就Unhandled exception in test.ext(kernel32.dll):0x6d7363:Microsoft C++ Exception 这个提示来说,该如何捕捉呢???m_pRecordset = theApp.m_pConnection->Execute((_bstr_t)("select * from users where id = " + id),&RecordsAffected,adCmdText);
    当id 为空的时候 查询就会出现上面的异常
    我现在的处理方法是前期处理
    if(su.isNull(id)) {
    MessageBox("请输入要查询的id");
    return;
    }
    但是我想后期处理
    try {
        m_pRecordset = theApp.m_pConnection->Execute((_bstr_t)("select * from users where id = " +id),&RecordsAffected,adCmdText);
    } catch(....) {
       MessageBox("很抱歉,查询失败!");
    }只是无法捕捉此异常