Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-04-2007
leanfreue leanfreue is offline
Miembro
 
Registrado: mar 2007
Posts: 19
Poder: 0
leanfreue Va por buen camino
Question 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.
Responder Con Cita
  #2  
Antiguo 13-04-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
el error te lo lanza cuando estas en tiempo de depuración?
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #3  
Antiguo 13-04-2007
leanfreue leanfreue is offline
Miembro
 
Registrado: mar 2007
Posts: 19
Poder: 0
leanfreue Va por buen camino
Thumbs up

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!!!
Responder Con Cita
  #4  
Antiguo 13-04-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 13-04-2007
leanfreue leanfreue is offline
Miembro
 
Registrado: mar 2007
Posts: 19
Poder: 0
leanfreue Va por buen camino
Perfecto !!!!

Gracias Poliburro y Bicho por sus respuestas!!!
Responder Con Cita
  #6  
Antiguo 14-04-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
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.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #7  
Antiguo 14-04-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
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)...
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #8  
Antiguo 14-04-2007
leanfreue leanfreue is offline
Miembro
 
Registrado: mar 2007
Posts: 19
Poder: 0
leanfreue Va por buen camino
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.
Responder Con Cita
  #9  
Antiguo 14-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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
Responder Con Cita
  #10  
Antiguo 14-04-2007
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Totalmente de acuerdo contigo caral
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #11  
Antiguo 14-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
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.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #12  
Antiguo 14-04-2007
leanfreue leanfreue is offline
Miembro
 
Registrado: mar 2007
Posts: 19
Poder: 0
leanfreue Va por buen camino
Estoy de acuerdo con vos Egostar, el código era sólo un ejemplo porque la idea era aprender a utilizar las Excepciones.

Gracias.
Responder Con Cita
  #13  
Antiguo 14-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
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.
Responder Con Cita
  #14  
Antiguo 14-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
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 forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
IIS no funciona YaninaGenia .NET 2 26-07-2006 14:21:59
BDE, no funciona martita Conexión con bases de datos 4 26-05-2006 22:21:12
No me funciona el when sqlcode ... Morphine Firebird e Interbase 3 06-04-2006 12:03:01
... será que funciona ??? ... Jure Humor 0 01-04-2004 19:48:04
like no funciona ! dmasson Conexión con bases de datos 9 23-03-2004 14:10:50


La franja horaria es GMT +2. Ahora son las 18:47:27.


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
Copyright 1996-2007 Club Delphi