Výjimky: Zkoumání obsahu výjimek
catch
Ačkoli argument bloku může být téměř jakýkoli datový typ, funkce MFC vyvolává výjimky typů odvozených z třídy CException
. Chcete-li zachytit výjimku vyvolanou funkcí MFC, pak napíšete catch
blok, jehož argument je ukazatel na CException
objekt (nebo objekt odvozený od CException
, například CMemoryException
). V závislosti na přesném typu výjimky můžete prozkoumat datové členy objektu výjimky a shromáždit informace o konkrétní příčině výjimky.
Typ CFileException
má m_cause
například datový člen, který obsahuje výčtový typ, který určuje příčinu výjimky souboru. Některé příklady možných návratových hodnot jsou CFileException::fileNotFound
a CFileException::readOnly
.
Následující příklad ukazuje, jak prozkoumat obsah souboru CFileException
. Podobně je možné prozkoumat i jiné typy výjimek.
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();
}
Další informace najdete v tématu Výjimky: Uvolnění objektů ve výjimkách a výjimkách: Zachytávání a odstraňování výjimek.