例外狀況:檢查例外狀況內容
雖然 catch 區塊的引數可以幾乎任何資料型別, MFC 函式擲回衍生自類別之型別的例外狀況的 CException。 若要攔截 MFC 函式所擲回的例外狀況,然後,您可以撰寫引數是指向 CException 物件的 catch 區塊 (或衍生自 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();
}
如需詳細資訊,請參閱 例外狀況:在例外狀況的釋放物件 和 例外狀況:攔截和刪除例外狀況。。