Compartilhar via


Exceções: Examinando o conteúdo da exceção

Embora o argumento de um catch bloco possa ser de quase qualquer tipo de dados, as funções MFC geram exceções de tipos derivados da classe CException. Para capturar uma exceção gerada por uma função MFC, você escreve um catch bloco cujo argumento é um ponteiro para um CException objeto (ou um objeto derivado de CException, como CMemoryException). Dependendo do tipo exato da exceção, você pode examinar os membros de dados do objeto de exceção para coletar informações sobre a causa específica da exceção.

Por exemplo, o tipo CFileException tem o membro de dados m_cause, que contém um tipo enumerado que especifica a causa da exceção de arquivo. Alguns exemplos dos possíveis valores retornados são CFileException::fileNotFound e CFileException::readOnly.

O exemplo a seguir mostra como examinar o conteúdo de um CFileException. Outros tipos de exceção podem ser examinados da mesma forma.

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 obter mais informações, consulte Exceções: liberando objetos em exceções e exceções: captura e exclusão de exceções.

Consulte também

Tratamento de Exceções