次の方法で共有


例外処理 : 例外の内容の調査

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

たとえば、 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();
}

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

参照

概念

例外処理 (MFC)