Partager via


Exceptions : examen du contenu des exceptions

Bien que l’argument d’un catch bloc puisse être de presque n’importe quel type de données, les fonctions MFC lèvent des exceptions de types dérivés de la classe CException. Pour intercepter une exception levée par une fonction MFC, vous écrivez un catch bloc dont l’argument est un pointeur vers un CException objet (ou un objet dérivé de CException, par exemple CMemoryException). Selon le type exact de l’exception, vous pouvez examiner les membres de données de l’objet exception pour collecter des informations sur la cause spécifique de l’exception.

Par exemple, le CFileException type a le m_cause membre de données, qui contient un type énuméré qui spécifie la cause de l’exception de fichier. Voici quelques exemples des valeurs CFileException::fileNotFound de retour possibles et CFileException::readOnly.

L’exemple suivant montre comment examiner le contenu d’un CFileException. D’autres types d’exceptions peuvent être examinés de la même façon.

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

Pour plus d’informations, consultez Exceptions : Libération d’objets dans exceptions et exceptions : capture et suppression d’exceptions.

Voir aussi

Gestion des exceptions