[英]Possible exception thrown by CFile in MFC Library
當前,我正在研究一些使用MFC庫中的CFile
類打開文本文件的代碼。
我在代碼中發現了兩種錯誤處理:這只是示例,因為發布代碼是機密的。.只需認為try語句的主體僅包含CFile類的成員函數。
try {
if(file.Open(strPath,Cfile::modeRead|CFile::shareDenyNone)){
file.Read(strKey, dataLength);
file.Close();
}
}
catch (CFileException& e) {
}
try {
// same code above
}
catch (CFileException *e) {
}
CFile
類的成員函數可能引發哪些錯誤? CFile
類的成員函數引發的異常的一種可能方法? 您可以通過兩種方式按值拋出異常對象:
CException ex;
throw ex; // CException
或通過指針:
CException *ex = new CException();
throw ex; // CException *
捕獲異常時,您將捕獲已拋出的異常的相應類型,即指針或值。 為了避免復制,我們通常使用引用按值捕獲:
catch(CException &e) // when throwing CException
MFC通過指針拋出異常。 參見https://msdn.microsoft.com/en-us/library/0e5twxsh.aspx
try {
AfxThrowUserException();
}
catch( CException* e ) {
e->Delete();
}
不要忘記在事后刪除異常,否則每次引發異常時都會出現少量內存泄漏。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.