目前,我正在研究使用MFC中的CFile类打开文本文件的一些代码。
我在代码中发现了两种错误处理:这只是示例,因为发布代码是保密的。只需想一想,try语句的主体只包含CFile类的成员函数。
1
try {
if(file.Open(strPath,Cfile::modeRead|CFile::shareDenyNone)){
file.Read(strKey, dataLength);
file.Close();
}
}
catch (CFileException& e) {
}2
try {
// same code above
}
catch (CFileException *e) {
}CFile类的成员函数可能引发哪些错误?CFile类的成员函数引发的异常的第一种方法可行吗?发布于 2015-05-21 11:47:58
您可以以两种方式按值抛出异常对象:
CException ex;
throw ex; // CException 或者通过指针:
CException *ex = new CException();
throw ex; // CException *在捕获异常时,可以捕获抛出的相应类型,即指针或值。为了避免复制,我们通常使用引用按值捕获:
catch(CException &e) // when throwing CExceptionMFC通过指针抛出异常,请参阅https://msdn.microsoft.com/en-us/library/0e5twxsh.aspx。
try {
AfxThrowUserException();
}
catch( CException* e ) {
e->Delete();
}不要忘了以后删除异常,否则每次抛出异常时都会有一个小内存泄漏。
https://stackoverflow.com/questions/30370579
复制相似问题