Eccezioni: Indice esame di eccezione
Anche se l'argomento di un blocco catch può essere di qualsiasi tipo di dati, le funzioni MFC generano eccezioni dei tipi derivati dalla classe CException.Per intercettare un'eccezione generata da una funzione MFC, quindi, si scrive un blocco catch di cui l'argomento è un puntatore a un oggetto di CException (o a un oggetto derivato da CException, come CMemoryException).A seconda del tipo esatto dell'eccezione, è possibile esaminare i membri dati dell'eccezione per raccogliere informazioni sulla causa specifica dell'eccezione.
Ad esempio, il tipo di CFileException ha il membro dati di m_cause , che contiene un tipo enumerato di che specifica la causa dell'eccezione di file.Alcuni esempi di restituire valori possibili sono CFileException::fileNotFound e CFileException::readOnly.
Nell'esempio seguente viene illustrato come esaminare il contenuto di CFileException.Altri tipi di eccezione possono essere esaminati nello stesso modo.
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();
}
Per ulteriori informazioni, vedere eccezioni: Versione degli oggetti delle eccezioni e eccezioni: Rilevazione e l'eliminazione delle eccezioni.