Ausnahmen: Untersuchen von Ausnahmeinhalten

Obwohl das Argument eines catch Blocks fast jeden Datentyp aufweisen kann, lösen die MFC-Funktionen Ausnahmen von Typen aus, die von der Klasse CExceptionabgeleitet sind. Um eine Ausnahme abzufangen, die von einer MFC-Funktion ausgelöst wird, schreiben Sie dann einen catch Block, dessen Argument ein Zeiger auf ein CException Objekt ist (oder ein Objekt, das von CException, z. B CMemoryException. abgeleitet, abgeleitet ist). Abhängig vom genauen Typ der Ausnahme können Sie die Datenmmber des Ausnahmeobjekts untersuchen, um Informationen über die spezifische Ursache der Ausnahme zu sammeln.

Beispielsweise weist der CFileException Typ das m_cause Datenelement auf, das einen Aufzählungstyp enthält, der die Ursache der Datei exception angibt. Einige Beispiele für mögliche Rückgabewerte sind CFileException::fileNotFound und CFileException::readOnly.

Das folgende Beispiel zeigt, wie der Inhalt einer .CFileException Andere Ausnahmetypen können ebenfalls untersucht werden.

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();
}

Weitere Informationen finden Sie unter Ausnahmen: Freigeben von Objekten in Ausnahmen und Ausnahmen: Abfangen und Löschen von Ausnahmen.

Siehe auch

Ausnahmebehandlung