Partilhar via


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

Embora o argumento de um bloco de catch pode ser de praticamente qualquer tipo de dados, as funções de MFC lançam exceções de tipos derivados da classe CException. Para capturar uma exceção gerada por uma função de MFC, em seguida, você grava um bloco de catch cujo argumento seja um ponteiro para um objeto de CException (ou a um objeto derivado de CException, como CMemoryException). Dependendo do tipo exato de exceção, você pode examinar os membros de dados do objeto de exceção das informações de procedimento sobre o motivo específico que causou a exceção.

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

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

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 nas exceções e Exceções: Capturando e excluindo exceções.

Consulte também

Conceitos

Tratamento de exceções em MFC