次の方法で共有


CUserException クラス

エンド ユーザーの操作を中止するためにスローします。

構文

class CUserException : public CSimpleException

解説

アプリケーション固有の例外に対して throw/catch 例外メカニズムを使用する場合は、 CUserException を使用します。 クラス名の "User" は、"ユーザーが処理する必要がある例外的な操作を行いました" と解釈できます。

通常、 CUserException は、操作が失敗したことをユーザーに通知するためにグローバル関数 AfxMessageBox を呼び出した後にスローされます。 例外ハンドラーを記述するときは、通常、ユーザーにエラーが既に通知されているため、例外を特別に処理します。 場合によっては、フレームワークによってこの例外がスローされます。 自分で CUserException をスローするには、ユーザーに警告し、グローバル関数 AfxThrowUserExceptionを呼び出します。

次の例では、失敗する可能性がある操作を含む関数がユーザーに警告し、 CUserExceptionをスローします。 呼び出し元の関数は例外をキャッチし、特別に処理します。

void DoSomeOperation()
{
   // Processing
   // If something goes wrong...
   AfxMessageBox(_T("The x operation failed"));
   AfxThrowUserException();
}

BOOL TrySomething()
{
   try
   {
      // Could throw a CUserException or other exception.
      DoSomeOperation();
   }
   catch (CUserException* pe)
   {
      pe->Delete();
      return FALSE;    // User already notified.
   }
   catch (CException* pe)
   {
      // For other exception types, notify user here.
      pe->ReportError();
      return FALSE;
   }
   return TRUE;   // No exception thrown.
}

CUserExceptionの使用方法の詳細については、Exception Handling (MFC) に関する記事を参照してください。

継承階層

CObject

CException

CSimpleException

CUserException

要件

ヘッダー: afxwin.h

関連項目

階層図
CException クラス