Exceções: Examinando conteúdo de exceção
Embora um catch argumento do bloco pode ser praticamente qualquer tipo de dados, as funções do MFC lançam exceções de tipos derivados da classe CException.Para capturar uma exceção lançada por uma função do MFC, em seguida, você escreve uma catch bloco cujo argumento é um ponteiro para um CException objeto (ou um objeto derivado de CException, como CMemoryException).Dependendo do tipo da exceção exato, você pode examinar os membros de dados do objeto de exceção para reunir informações sobre a causa específica da exceção.
Por exemplo, o CFileException tipo tem o m_cause membro de dados que contém um tipo enumerado que especifica a causa da exceção de arquivo.Alguns exemplos dos possíveis valores de retorno 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: detectar e excluir exceções.