Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Excepciones - no va por el camino que quiero!! (https://www.clubdelphi.com/foros/showthread.php?t=26113)

Patricio 13-10-2005 16:23:17

Excepciones - no va por el camino que quiero!!
 
Hola a todos tengo un pequeño problema

quiero que cuando se produzca un error realice una tarea en especial pero no va por el camino que quiero, seguramente debe ser algo simple, el codigo es algo asi

Código Delphi [-]
var
a:integer;
try
  a := StrToInt(Edit.text)
except
  EConvertError: message(..)
end;

pero no entra nunca al EConvertError, directamente salta el error de Widnows y listo.

Saludos

dec 13-10-2005 16:29:22

Hola,

Algo así debería irte bien:

Código Delphi [-]
 var
   i: integer;
 begin
   try
     i := StrToInt(Edit1.Text);
   except
     on E: EConvertError do
       ShowMessage('Error: ' + E.Message);
   end;
 end;

Patricio 13-10-2005 16:32:30

Algo asi tengo y nada
 
Algo asi tengo, ya que lo saque de la ayuda de Delphi 5 pero no funca. Vos eso lo tenes funcionando?

dec 13-10-2005 16:36:14

Hola,

Sí. Así es. Lo he probado y funciona como se espera. :)

Neftali [Germán.Estévez] 13-10-2005 16:42:38

Puedes hacer la siguiente prueba:

Código Delphi [-]
  var
   i: integer;
 begin
   try
     i := StrToInt(Edit1.Text);
   except
     on E:Exception do begin
       ShowMessage('Error: ' + E.Message + '  ClassName: ' + E.ClassName);
     end;
   end;
 end;

Con eso deberías saber si estás capturando la Excepción del tipo correcto (EConvertError).

Patricio 13-10-2005 20:22:58

no funca
 
Hice lo que me pusieron y no anduvo, no llega a la sentencia que pongo:

on E:EConvertError do. ...

directamente aparece una ventana diciendo que no es una buena conversion

No tendre que activar algo? ese codigo lo tengo que poner en algun lado en especial?

Saludos

maeyanes 13-10-2005 20:35:54

Cita:

Empezado por Patricio
Hice lo que me pusieron y no anduvo, no llega a la sentencia que pongo:

on E:EConvertError do. ...

directamente aparece una ventana diciendo que no es una buena conversion

No tendre que activar algo? ese codigo lo tengo que poner en algun lado en especial?

Saludos

Si estás depurando tu aplicación desde el IDE, cuando surge una excepción, delphi primero muestra su cuadro de mensaje con el error, al darle Aceptar y luego F9, entonces tu aplicación, si está capturando la excepción, debe hacer lo indicado en tu código.

Verifica esto que te comento.

Si no es eso, entonces sería bueno que pongas parte del código que dices que no funciona como deseas.


Saludos...

Patricio 13-10-2005 20:58:45

estas en lo correcto
 
paso eso que me decis, mostro la ventana y despues si me hizo lo que puse en el except

ahora como puedo hacer para que no muestre esa primer ventana y directamente haga lo que puse en el Excep primero?

saludos

dec 13-10-2005 22:14:01

Hola,


Cita:

Empezado por Patricio
(...) como puedo hacer para que no muestre esa primer ventana y directamente haga lo que puse en el Excep primero?

Puede que esto te sirva: Menú -> Tools -> Debugger Options -> Language Exceptions -> [X] Stop on Delphi Exceptions.

Lepe 14-10-2005 12:29:24

En realidad tienes que dejar esa casilla en blanco. Ahora mismo la tienes marcada.

dec 14-10-2005 12:36:06

Hola,


Cita:

Empezado por Lepe
En realidad tienes que dejar esa casilla en blanco. Ahora mismo la tienes marcada.

Así es la verdad Lepe. Lo dejé así para dar a entender que se trataba de un "TCheckBox", pero, efectivamente, también podía haberlo dicho y haberla dejado desmarcada, que es lo suyo, para lo que se pretende conseguir, y eso si no me equivoco. ;)

Patricio 14-10-2005 19:28:25

Impresionante!!
 
muchachos funco de maravillas, de diego ;)

Muchas Gracias

Saludos


La franja horaria es GMT +2. Ahora son las 12:10:53.

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