Compartir por


Excepciones: Examinar contenidos de excepciones

Aunque el argumento de un bloque catch puede ser prácticamente de cualquier tipo de datos, las funciones MFC inician excepciones de tipos derivados de la clase CException. Para detectar una excepción iniciada por una función MFC, escriba un bloque catch cuyo argumento sea un puntero a un objeto CException (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 tipo CFileException tiene el miembro de datos m_cause, 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 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: Liberación de objetos en excepciones y Excepciones: Detección y eliminación de excepciones.

Consulte también

Control de excepciones