Condividi tramite


Eccezioni: esame del contenuto delle eccezioni

Anche se l'argomento di un catch blocco può essere di quasi qualsiasi tipo di dati, le funzioni MFC generano eccezioni di tipi derivati dalla classe CException. Per intercettare un'eccezione generata da una funzione MFC, quindi si scrive un catch blocco il cui argomento è un puntatore a un CException oggetto (o un oggetto derivato da CException, ad esempio CMemoryException). A seconda del tipo esatto dell'eccezione, è possibile esaminare i membri dati dell'oggetto eccezione per raccogliere informazioni sulla causa specifica dell'eccezione.

Ad esempio, il CFileException tipo ha il m_cause membro dati, che contiene un tipo enumerato che specifica la causa dell'eccezione di file. Alcuni esempi dei possibili valori restituiti sono CFileException::fileNotFound e CFileException::readOnly.

Nell'esempio seguente viene illustrato come esaminare il contenuto di un oggetto CFileException. È possibile esaminare altri tipi di eccezione in modo analogo.

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 altre informazioni, vedere Eccezioni: Liberare oggetti in eccezioni ed eccezioni: rilevamento ed eliminazione di eccezioni.

Vedi anche

Gestione delle eccezioni