共用方式為


CUserException 類別

擲回以停止使用者作業。

語法

class CUserException : public CSimpleException

備註

當您想要針對應用程式特定例外狀況使用擲回/攔截例外狀況機制時,請使用 CUserException 。 類別名稱中的 「使用者」可以解譯為「我的使用者執行了我需要處理的特殊動作」。

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 類別