Compartir a través de


Excepciones: Examinar el contenido de la excepción

Aunque el argumento de un catch bloque puede ser de casi cualquier tipo de datos, las funciones MFC lanzan excepciones de tipo derivado de la clase CException. Para detectar una excepción producida por una función MFC, escriba un catch bloque cuyo argumento sea un puntero a un CException objeto (o un objeto derivado de CException, como CMemoryException). Según el tipo exacto de la excepción, puede examinar los miembros de datos del objeto de excepción para recopilar información sobre la causa específica de la excepción.

Por ejemplo, el CFileException tipo tiene el m_cause miembro de datos, que contiene un tipo enumerado que especifica la causa de la excepción de archivo. Algunos ejemplos de los posibles valores devueltos son CFileException::fileNotFound y CFileException::readOnly.

En el ejemplo siguiente se muestra cómo examinar el contenido de un CFileException. Otros tipos de excepciones se pueden examinar de forma similar.

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

Para obtener más información, vea Excepciones: Liberar objetos en excepciones y excepciones: Detectar y eliminar excepciones.

Consulte también

Manejo de Excepciones