Compartir a través de


CUserException Class

Se produce para detener una operación del usuario final.

class CUserException : public CSimpleException

Comentarios

Utilice CUserException cuando desee utilizar el mecanismo de excepción throw/catch de las excepciones específicas de la aplicación. " El usuario” en el nombre de clase puede interpretarse como “mi usuario hace algo pendiente que necesito controlar”.

CUserException se produce normalmente después de llamar a la función global AfxMessageBox para notificar al usuario que hay un error en una operación. Cuando se escribe un controlador de excepciones, controle la excepción especialmente puesto que han notificado al usuario normalmente ya de error. El marco de trabajo produce esta excepción en algunos casos. Para iniciar CUserException personalmente, avise al usuario y llame a la función global AfxThrowUserException.

En el ejemplo siguiente, una función que contiene operaciones que pueden fallar avisa al usuario y producen CUserException. La función de llamada detecta la excepción y la controla especialmente:

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

Para obtener más información sobre cómo utilizar CUserException, vea el artículo control de excepciones (MFC).

Jerarquía de herencia

CObject

CException

CSimpleException

CUserException

Requisitos

Encabezado: afxwin.h

Vea también

Referencia

Gráfico de jerarquías

CException (Clase)

AfxMessageBox

AfxThrowUserException

Otros recursos

Cómo se hago: ¿Cree mis clases de excepción personalizadas de Own?