Freigeben über


CUserException-Klasse

Wird ausgelöst, um einen Endbenutzervorgang zu beenden.

class CUserException : public CSimpleException

Hinweise

Verwendung CUserException, wenn Sie den Wurfs-/Erfassungsausnahmemechanismus für anwendungsspezifische Ausnahmen verwenden möchten. " Benutzer" im Klassennamen kann interpretiert werden, wie "My Benutzer Ausnahmes einige bereit, das ich behandeln muss".

CUserException wird normalerweise ausgelöst, nachdem die globale Funktion AfxMessageBox aufgerufen wurde, um den Benutzer zu benachrichtigen, dass ein Vorgang fehlgeschlagen ist. Wenn Sie einen Ausnahmehandler schreiben, behandeln Sie die Ausnahme besonders, da der Benutzer normalerweise bereits vom Fehler benachrichtigt wurde. Das Framework löst diese Ausnahme in einigen Fällen aus. Um CUserException sich auszulösen, warnen Sie den Benutzer und rufen dann die globale Funktion AfxThrowUserException auf.

Im Beispiel unten, eine Funktion, die Vorgänge enthält, die möglicherweise Warnungen der Benutzer und auslöst CUserException belassen. Die aufrufende Funktion wird die Ausnahme abgefangen und behandelt sie besonders:

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 von CUserException, finden Sie im Artikel Ausnahmebehandlung (MFC).

Vererbungshierarchie

CObject

CException

CSimpleException

CUserException

Anforderungen

Header: afxwin.h

Siehe auch

Referenz

Hierarchiediagramm

CException-Klasse

AfxMessageBox

AfxThrowUserException

Weitere Ressourcen

Wie behebe ich: Erstellen Sie die eigenen benutzerdefinierten Ausnahme-Klassen?