共用方式為


CUserException 類別

擲回阻止使用者作業。

class CUserException : public CSimpleException

備註

要為應用程式特定的例外狀況時,使用擲回或攔截例外狀況機制使用 CUserException 。「 使用者」類別名稱可以解譯我的使用者做出我需要處理例外的事」。

在呼叫 CUserException 全域函式之後 AfxMessageBox 通知使用者通常會擲回作業失敗。 當您撰寫例外處理常式 (Exception Handler) 時,請特別處理例外狀況,因為使用者已經通常會告知已失敗。 架構會在特定情況下擲回這個例外狀況。 要擲回 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

其他資源

如何?:建立自己的自訂例外狀況類別?