[英]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.