CUserException クラス
更新 : 2007 年 11 月
エンド ユーザーの操作を中止するためにスローします。
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)」を参照してください。
必要条件
ヘッダー : afxwin.h