Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   No me funciona TRY - EXCEPT - END (https://www.clubdelphi.com/foros/showthread.php?t=42437)

leanfreue 13-04-2007 23:01:11

No me funciona TRY - EXCEPT - END
 
Hola amigos, estoy tratando de probar el uso de excepciones, pero seguramente hay algo que estoy haciendo mal.
En el siguiente ejemplo, esperaba que no me apareciera ningún mensaje de error, pero me aparece:
"...Exe raised exception EDivByZero with message 'Division by Zero'..."

Código Delphi [-]
procedure Tfrm_clientes.b_ErrorClick(Sender: TObject);
var
  a,b,c: Integer;
begin
  a := 15;
  b := 0;
  try
    c := a div b;
    txtCodigo.Text := IntToStr(c);
  except
    on EDivByZero do
      txtCodigo.Text := 'cero';
  end;

end;

¿Qué estoy haciendo mal?
(Trabajo con Delphi 7)
Les agradezco desde ya por su tiempo.

poliburro 13-04-2007 23:04:39

el error te lo lanza cuando estas en tiempo de depuración?

leanfreue 13-04-2007 23:30:53

Si, el error aparece cuando ejecuto el programa desde Delphi. Acabo de probar el ejecutable y en ese caso funciona perfecto.

Es normal eso?

De todas formas ya me quedo tranquilo, obviamente la idea es que no le aparezca el error al cliente.

Gracias!!!

Bicho 13-04-2007 23:43:24

Hola,

Si vas al menu Tools-> Debugger Option->Language Exceptions, verás que abajo hay una marca que reza: "Stop on Delphi Exceptions", si la desactivas, es probable que no te aparezca ese mensaje.

Saludos

leanfreue 13-04-2007 23:48:56

Perfecto !!!!

Gracias Poliburro y Bicho por sus respuestas!!!

poliburro 14-04-2007 00:01:20

No es recomendable que desactives las opciones del debuger, pues la idea es precisamente esa, que mientras depures, puedas visualizar los errores, aún los controlados.

jhonny 14-04-2007 00:04:13

Cabe apuntar que es normal (y de hecho es útil) que te muestre ese error si estas depurando el programa, lo que no seria normal es que te lo mostrara en la ejecución normal del programa (Osea cuando lo ejecutas solito, sin el IDE de Delphi abierto)...

leanfreue 14-04-2007 00:13:40

Tienen razón, de hecho despues de probarlo, volví a tildar la opción de que me muestre los errores, como Uds. dicen, esa es justamente la finalidad.

Gracias otra vez.

Caral 14-04-2007 00:20:33

Hola
Es muy cierto, da errores en tiempo de ejecucion, pero que pesados son, no se si sere demasiado perfeccionista pero aborrezco estos erroes, siempre trato de buscar otra manera de hacer lo mismo, porque hoy me acuerdo del porque me da el error, dentro de unos meses se ma habra olvidado y a comenzar de nuevo.
Me ha pasado varias veces, y simpre busco otra solucion, nunca dejo el error ahi.
Es preferible romperse la cabeza dos dias que dejar un error o algo asi porque si.
Saludos

poliburro 14-04-2007 00:41:54

Totalmente de acuerdo contigo caral

egostar 14-04-2007 01:11:41

Cita:

Empezado por Caral
Hola
Es muy cierto, da errores en tiempo de ejecucion, pero que pesados son, no se si sere demasiado perfeccionista pero aborrezco estos erroes, siempre trato de buscar otra manera de hacer lo mismo, porque hoy me acuerdo del porque me da el error, dentro de unos meses se ma habra olvidado y a comenzar de nuevo.
Me ha pasado varias veces, y simpre busco otra solucion, nunca dejo el error ahi.
Es preferible romperse la cabeza dos dias que dejar un error o algo asi porque si.
Saludos

Muy de acuerdo amigo Caral, lo que yo haria es lo siguiente:

Código Delphi [-]
procedure Tfrm_clientes.b_ErrorClick(Sender: TObject);
var
  a,b,c: Integer;
begin
  a := 15;
  b := 0;
  if b <> 0 then begin
     c := a div b;
     txtCodigo.Text := IntToStr(c);
  end
  else begin
           ShowMessage('ERROR xyz: Divisón cero');
  end;
end;
Los try...except me resultan mas útiles en cuestiones no controlables a primera vista, pero bueno, quien soy yo para dar consejos de usar o no un try.

Salud OS.

leanfreue 14-04-2007 02:24:17

Estoy de acuerdo con vos Egostar, el código era sólo un ejemplo porque la idea era aprender a utilizar las Excepciones.

Gracias.

Caral 14-04-2007 03:15:22

Hola

Cita:

Escrito por Egostar:
quien soy yo para dar consejos de usar o no un try.
Simplemente un Maestro, te parece poco.
Saludos Maestro.

egostar 14-04-2007 18:08:38

Cita:

Empezado por Caral
Simplemente un Maestro, te parece poco.
Saludos Maestro.

Hombre amigo Caral, muchas gracias, pero para ser maestro me hace falta todo, estoy a años luz de los maestros de aqui.

Salud OS.


La franja horaria es GMT +2. Ahora son las 03:49:25.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi