異常處理__try{}__except(EXCEPTION_EXECUTE_HANDLER){}


在一個函數中不能混合使用

try{}catch(CException *e){}

__try{}__except(EXCEPTION_EXECUTE_HANDLER){}

編譯時報錯

error C2713: 每個函數只允許一種異常處理方式

解決方法:

將__try__except代碼單獨成一個函數

 

void robustMemcpy()

{

  __try
  {

    memcpy(dstMapAddress, buffer, dwBlockBytes);
  }
  __except(EXCEPTION_EXECUTE_HANDLER)
  {
     
  }

}

 

//以下C++函數調用一個使用SEH異常處理的函數

void cpp_funtion()

{

  robustMemcpy();

 

  try
  {

    //...
  }
  catch(CInternetException *pEx)
  {
     TCHAR szErr[1024];
     if (pEx->GetErrorMessage(szErr, 1024))
     AfxMessageBox(szErr, MB_OK);
     pEx->Delete();
  }

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM