异常:检查异常的内容
虽然 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();
}
有关更多信息,请参见 异常:释放异常中的对象 和 异常:捕获和删除异常。