Freigeben über


CUserException-Klasse

Wird ausgelöst, um einen Endbenutzervorgang zu beenden.

Syntax

class CUserException : public CSimpleException

Hinweise

Verwenden Sie CUserException diesen Vorgang, wenn Sie den Ausnahmemechanismus "Auslösen/Abfangen" für anwendungsspezifische Ausnahmen verwenden möchten. "Benutzer" im Klassennamen kann als "mein Benutzer hat etwas Außergewöhnliches getan, das ich verarbeiten muss" interpretiert werden kann.

Ein CUserException Fehler wird in der Regel ausgelöst, nachdem die globale Funktion AfxMessageBox aufgerufen wurde, um den Benutzer darüber zu informieren, dass ein Vorgang fehlgeschlagen ist. Behandeln Sie beim Schreiben eines Ausnahmehandlers die Ausnahme speziell, da der Benutzer in der Regel bereits über den Fehler benachrichtigt wurde. Das Framework löst diese Ausnahme in einigen Fällen aus. Um einen CUserException selbst auszuwerfen, benachrichtigen Sie den Benutzer, und rufen Sie dann die globale Funktion AfxThrowUserExceptionauf.

Im folgenden Beispiel wird eine Funktion, die Vorgänge enthält, die den Benutzer möglicherweise nicht alarmieren und einen CUserExceptionFehler auslösen. Die aufrufende Funktion fängt die Ausnahme ab und behandelt sie speziell:

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.
}

Weitere Informationen zur Verwendung CUserExceptionfinden Sie im Artikel " Exception Handling (MFC)".

Vererbungshierarchie

CObject

CException

CSimpleException

CUserException

Anforderungen

Header: afxwin.h

Siehe auch

Hierarchiediagramm
CException-Klasse