Freigeben über


Ausnahmen: Untersuchen von Ausnahmeinhalten

Obwohl das Argument catch eines Blocks nahezu beliebigen Datentyp haben kann, lösen die MFC-Funktionen Ausnahmen von Typen aus, die von der CException- Klasse abgeleitet werden. Um eine Ausnahme abfangen, die von einer MFC-Funktion dann ausgelöst wird schreiben Sie einen catch-Block dessen Argument ein Zeiger auf ein CException-Objekt ist (oder einem Objekt abgeleitet von CException, wie CMemoryException). Abhängig vom genauen Ausnahmetyp, können Sie die Datenmember des Ausnahmeobjekts an um über die genaue Ursache der Ausnahme überprüfen.

Beispielsweise verfügt der CFileException den Typ m_cause, der Datenmember einen Aufzählungstyp enthält, der die Ursache der Dateiausnahme angibt. Beispiele der möglichen Werte sind CFileException::fileNotFound und CFileException::readOnly.

Das folgende Beispiel zeigt, wie der Inhalt von CFileException überprüft. Andere Ausnahmetypen können auf ähnliche Weise überprüft 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: Freigabe von Objekten in den Ausnahmen und Ausnahmen: Ausnahmen abfangen und Löschen.

Siehe auch

Konzepte

Ausnahmebehandlung in MFC