Udostępnij przez


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 typ CFileException ma jego m_cause pole danych, które zawiera typ wyliczeniowy 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 także

Obsługa wyjątków