| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
zuma Cdt

Registrado: 05 Mar 2003Mensajes: 24
|
Publicado: Mie 03 Mar, 2004 2:48 pm Asunto: Ayuda para Capturar error |
|
|
hola a todos, necesito ayuda para acabar mi programita, necesito que cuando se produzca un error, cualquier error, salga una ventanita y diga por ejemplo:
Revisa los datos!!!! tontin!
Por otra parte me ocurre un error cuando meto un dato en un edit, decir antes que el dato que meto es un float, y le doy al backspace o lo selecciono y lo borro, me sale un mensaje de invalid floating point operation.
¿a que es debido?
¿como se puede arreglar?
un saludo y gracias |
|
| Volver arriba |
|
 |
Manolo(er_lolo) Capt


Registrado: 28 Jul 2003Mensajes: 172Ubicación: Salamanca
|
Publicado: Mie 03 Mar, 2004 2:53 pm Asunto: |
|
|
Para lo de los errores puedes utilizar try and catch, busca en la ayuda el funcionamiento porque yo lo utilizo de una forma muy basica :
try
{
// Instrucciones
}
catch(...)
{
//Mensaje si se produce error
}
Lo del error seguramente no introduces bien el numero, o realizas alguna operación despues en la que intentas convertir lo del edit a float.
Deberias controlar si el edit esta en blanco que no realice la instrucciones asociadas.
*** Puede que no sea eso, pero tampoco t puedo decir muxo mas con los datos que has puesto.
Espero habert ayudado, un saludo y suerte. |
|
| Volver arriba |
|
 |
zuma Cdt

Registrado: 05 Mar 2003Mensajes: 24
|
Publicado: Mie 03 Mar, 2004 4:40 pm Asunto: |
|
|
gracias por la respuesta, pero:
¿Que significan los puntos de dentro del catch?
gracias |
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Jue 04 Mar, 2004 7:24 am Asunto: |
|
|
Indican que se desa interceptar cualquier tipo de excepcion que pudea producirce en el bloque try
Significan que te va a aparecer un mensaje en igles, por que la excepcion, es de builder y no del Sistema Operativo..
para que no te salga el mensaje de error, realiza lo siguiente...
| Código: |
AnsiString Entrada;
int Dividendo, Divisor;
float Cociente;
// Pedimos el dividendo
Entrada = InputBox("División", "Introduzca el dividendo", "");
Dividendo = StrToInt(Entrada); // y el divisor
Entrada = InputBox("División", "Introduzca el divisor", "");
Divisor = StrToInt(Entrada);
// Esto da un error en la division.. si divisor es cero
Cociente = Dividendo / Divisor; // Realizamos la división
// y mostramos el resultado
ShowMessage("Cociente = " + AnsiString(Cociente));
// pero si las lineas anteriores, se cambian por esto funciona mejor
try
{
Cociente = Dividendo / Divisor; // Realizamos la división
}
catch(...)
{
//Mensaje si se produce error
ShowMessage("El Divisor no puede ser cero");
}
|
o bien tambien puedes utilizar multiples excepciones..
con una forma de las exepciones
| Código: |
AnsiString Entrada;
int Dividendo, Divisor;
float Cociente;
bool Error;
while(true) { // Repetir continuamente
Error = false; // En principio el indicador de error será False
try { // Inicio del bloque a proteger de excepciones
Entrada = InputBox("Divide", "Introduzca el dividendo: (0 para terminar) ", "");
Dividendo = StrToInt(Entrada);
if(Dividendo == 0) break; // Si el dividendo es 0 salir del bucle
Entrada = InputBox("Divide", "Introduzca el divisor: ", "");
Divisor = StrToInt(Entrada);
// Realizamos la operación de división.
Cociente = Dividendo / Divisor;
}
catch(EDivByZero &) { // En caso de que se produzca una excepción
// de división por cero
ShowMessage("No se puede dividir por cero");
Error = true;
}
catch(EIntError &N) {
ShowMessage("Operación inválida :" + N.Message);
Error = true;
}
catch(Exception &N) {
ShowMessage("Se produce la excepción :" + N.Message);
Error = true;
}
if(!Error) // Si no se ha producido un error
ShowMessage("Cociente= " + FloatToStr(Cociente)); // Mostramos el resultado
} // Fin del bucle While |
verifica tambien, como generar tus propias excepciones con la palabra reservada throw _________________
 |
|
| Volver arriba |
|
 |
zuma Cdt

Registrado: 05 Mar 2003Mensajes: 24
|
Publicado: Jue 04 Mar, 2004 10:13 am Asunto: |
|
|
Muchas gracias por la respuesta, la verdad es que en este foro he encontrado muchas cosas que no he sido capaz de encontrar en muchos libros.
Un saludo a todos. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
Cesar C. Salazar Gonzalez Master


Registrado: 01 Oct 2002Mensajes: 2155Ubicación: San Cristóbal de Las Casas, Chiapas
|
Publicado: Vie 05 Mar, 2004 1:19 am Asunto: |
|
|
algundia estaras, ayudando a gente, que tiene las dudas que tu mismo estas contestando, recuerda todos empezamos igual..
saludos...
bye _________________
 |
|
| Volver arriba |
|
 |
|