次の方法で共有


例外: 例外の内容を調べる

catch ブロックの引数にはほぼすべてのデータ型を指定できますが、MFC 関数はクラス CExceptionから派生した型の例外をスローします。 MFC 関数によってスローされた例外をキャッチするには、引数がcatch オブジェクト (またはCExceptionなど、CExceptionから派生したオブジェクト) へのポインターであるCMemoryException ブロックを記述します。 例外の正確な型に応じて、例外オブジェクトのデータ メンバーを調べて、例外の特定の原因に関する情報を収集できます。

たとえば、 CFileException 型には、ファイル例外の原因を指定する列挙型を含む m_cause データ メンバーがあります。 可能な戻り値の例としては、 CFileException::fileNotFoundCFileException::readOnlyがあります。

次の例は、 CFileExceptionの内容を調べる方法を示しています。 他の例外の種類も同様に調べることができます。

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();
}

詳細については、「 例外: 例外でのオブジェクトの解放と例外: 例外キャッチと削除」を参照してください。

こちらも参照ください

例外処理