异常:检查异常内容
虽然 catch
块的参数几乎可以是任何数据类型,但 MFC 函数会引发从 CException
类派生的类型发生异常。 若要捕获 MFC 函数引发的异常,请编写一个 catch
块,该块的参数是指向 CException
对象(或派生自 CException
的对象,例如 CMemoryException
)的指针。 根据异常的确切类型,可以检查异常对象的数据成员,以收集有关异常的特定原因的信息。
例如,CFileException
类型具有 m_cause
数据成员,其中包含一个枚举类型,用于指定文件异常的原因。 可能的返回值的一些示例包括 CFileException::fileNotFound
和 CFileException::readOnly
。
以下示例展示如何检查 CFileException
的内容。 可以用类似方法检查其他异常类型。
try
{
CFile file(_T("\\this_file_should_not_exist.dat"), CFile::modeRead);
}
catch (CFileException* theException)
{
if (theException->m_cause == CFileException::fileNotFound)
TRACE("File not found\n");
theException->Delete();
}
有关详细信息,请参阅异常:释放异常中的对象和异常:捕获和删除异常。