Problema al Generar una excepcion con Throws en Visual C++

17/04/2007 - 12:24 por ZiCruz | Informe spam
[b]Hola a tod@s,

en una aplicación que estoy haciendo, sino cumple una condición genero una
excepción con la siguiente clase:[/b]

using namespace System;

public ref class ValorOctetoIPException: public System::ApplicationException {
private:
static String^ Mensaje = "Valor del octeto incorrecto. /nNo está entre 0 y
255.";

public:
// --
// | Constructores |
// --
ValorOctetoIPException()
: ApplicationException(Mensaje) {}

ValorOctetoIPException(String^ auxMensaje)
: ApplicationException(String::Format("{0} - {1}", Mensaje, auxMensaje)) {}

ValorOctetoIPException(String^ auxMensaje, ApplicationException^ perteneceA)
: ApplicationException(String::Format("{0} - {1}", Mensaje, auxMensaje),
perteneceA) {}
};
[b]
y la siguiente instrucción:[/b]

throw gcnew ValorOctetoIPException();

[b]pero cuando provoco esta excepción para realizar la prueba me aparece el
mensaje de la excepción, pero y ahí viene mi problema, es que, me da a elegir
entre continuar con el programa o salir.

que estoy haciendo mal, ya quiero que aparezca el mensaje y despues de
aceptarlo de por terminada la aplicación.[/b]

Preguntas similare

Leer las respuestas

#1 Diego Jancic
22/04/2007 - 05:08 | Informe spam
Hola,
Eso pasa solamente lanzas cualquier excepcion si compilaste en modo
debug, si compilas en release vas a ver que te aparece el cuadrito de
"Send Error Report"

Saludos!,
Diego
Respuesta Responder a este mensaje
#2 ZiCruz
22/04/2007 - 07:00 | Informe spam
Que va a mi lo hace en los dos.

"Diego Jancic" wrote:

Hola,
Eso pasa solamente lanzas cualquier excepcion si compilaste en modo
debug, si compilas en release vas a ver que te aparece el cuadrito de
"Send Error Report"

Saludos!,
Diego


Respuesta Responder a este mensaje
#3 Diego Jancic
22/04/2007 - 07:58 | Informe spam
Ajap... tenes razon, pero ya encontre una solucion...
Segun estuve viendo, cuando se lanza una excepcion se llama al evento
Thread.ThreadException, y por default lo que hace es mostrarte la
ventana de continuar/salir, entonces lo que vi es que si capturas el
evento y lo dejas vacio la aplicacion sigue funcionando siempre (lo
mismo que darle continuar), y si lanzas la excepcion desde ahi te
aparece el mensaje que vos queres...
En c# lo que hice fue esto:

static void Main()
{
Application.ThreadException += new
ThreadExceptionEventHandler(Application_ThreadException);
Application.Run(new Form1());

}

static void Application_ThreadException(object sender,
ThreadExceptionEventArgs e)
{
throw e.Exception;
}

Imagino que sabras traducirlo a C++ (yo no se!).

Saludos!,
Diego
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida