Özel Durumlar: Özel Durum İçeriklerini İnceleme
Bir catch
bloğun bağımsız değişkeni hemen her veri türünde olsa da, MFC işlevleri sınıfından CException
türetilen türlerin özel durumlarını oluşturur. Bir MFC işlevi tarafından oluşan bir özel durumu yakalamak için, bağımsız değişkeni bir catch
nesnenin işaretçisi (veya gibi CMemoryException
öğesinden CException
türetilmiş bir nesne) olan bir CException
blok yazarsınız. Özel durumun tam türüne bağlı olarak, özel durumun belirli nedeni hakkında bilgi toplamak için özel durum nesnesinin veri üyelerini inceleyebilirsiniz.
Örneğin, tür, CFileException
dosya özel durumunun m_cause
nedenini belirten numaralandırılmış bir tür içeren veri üyesine sahiptir. Olası dönüş değerlerine bazı örnekler ve CFileException::readOnly
şeklindedirCFileException::fileNotFound
.
Aşağıdaki örnekte, içeriğinin CFileException
nasıl incelendiği gösterilmektedir. Diğer özel durum türleri benzer şekilde incelenebilir.
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();
}
Daha fazla bilgi için bkz. Özel Durumlar: Özel Durumlarda Nesneleri Boşaltma ve Özel Durumlar: Özel Durumları Yakalama ve Silme.