Udostępnij za pośrednictwem


Wyjątki: badanie zawartości wyjątku

Chociaż argument bloku może być niemal dowolnym typem catch danych, funkcje MFC zgłaszają wyjątki typów pochodzących z klasy CException. Aby przechwycić wyjątek zgłaszany przez funkcję MFC, należy napisać catch blok, którego argument jest wskaźnikiem do CException obiektu (lub obiektu pochodzącego z CExceptionelementu , takiego jak CMemoryException). W zależności od dokładnego typu wyjątku można zbadać składowe danych obiektu wyjątku, aby zebrać informacje o określonej przyczynie wyjątku.

Na przykład CFileException typ ma m_cause element członkowski danych, który zawiera wyliczony typ określający przyczynę wyjątku pliku. Niektóre przykłady możliwych wartości zwracanych to CFileException::fileNotFound i CFileException::readOnly.

W poniższym przykładzie pokazano, jak zbadać zawartość obiektu CFileException. Inne typy wyjątków można zbadać podobnie.

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

Aby uzyskać więcej informacji, zobacz Wyjątki: zwalnianie obiektów w wyjątkach i wyjątkach: przechwytywanie i usuwanie wyjątków.

Zobacz też

Obsługa wyjątków