CUserException クラス

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

class CUserException : public CSimpleException

解説

アプリケーション固有の例外に対してスロー/キャッチ例外機構を使用する場合は、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 の使い方の詳細については、「例外処理 (MFC)」を参照してください。

継承階層

CObject

CException

CSimpleException

CUserException

必要条件

ヘッダー: afxwin.h

参照

関連項目

階層図

CException クラス

AfxMessageBox

AfxThrowUserException

その他の技術情報

操作方法: My 独自のカスタム例外クラスを作成します。