Pengecualian: Memeriksa Konten Pengecualian
catch
Meskipun argumen blok dapat dari hampir semua jenis data, fungsi MFC melemparkan pengecualian jenis yang berasal dari kelas CException
. Untuk menangkap pengecualian yang dilemparkan oleh fungsi MFC, maka, Anda menulis catch
blok yang argumennya adalah penunjuk ke CException
objek (atau objek yang berasal dari CException
, seperti CMemoryException
). Bergantung pada jenis pengecualian yang tepat, Anda dapat memeriksa anggota data objek pengecualian untuk mengumpulkan informasi tentang penyebab spesifik pengecualian.
Misalnya, jenis memiliki CFileException
m_cause
anggota data, yang berisi jenis enumerasi yang menentukan penyebab pengecualian file. Beberapa contoh nilai pengembalian yang mungkin adalah CFileException::fileNotFound
dan CFileException::readOnly
.
Contoh berikut menunjukkan cara memeriksa konten CFileException
. Jenis pengecualian lainnya juga dapat diperiksa.
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();
}
Untuk informasi selengkapnya, lihat Pengecualian: Membebaskan Objek dalam Pengecualian dan Pengecualian: Menangkap dan Menghapus Pengecualian.